#include "MultiplyTable.h"
#include "common.h"
#include "SimpleElementS.h"

SimpleElementS::DataType* g_MultiplyTableT[14] = {
	0,
	Muliply2Table,
	0,
	0,
	0,
	0,
	Multiply7Table
};


Word32 LittlePrime[15] = {
	0,
	0x07,
	0,
	0,
	0,
	0,
	0x83,
};

SimpleElementS BigPrime3[] = {
	SimpleElementS(1),
	SimpleElementS(1),
	SimpleElementS(0),
	SimpleElementS(1)
};

SimpleElementS BigPrime37[] = {
	1,0,1,0,0,0,0,0,
	0,0,1,0,1,0,0,0,
	0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,
	0,0,0,0,0,1
};

SimpleElementS* BigPrime[40] = {
	0,
	0,
	BigPrime3,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	0,
	BigPrime37,
}; 

Word32 ElementNum[15] ={
	2,
	4,
	8,
	16,
	32,
	64,
	128,
	256,
	512,
	1024,
	2048,
	4096,
};

Word32 Muliply2Table[4*4] = {
	0,   0,   0,   0,
	0,   1,   2,   3,
	0,   2,   3,   1,
	0,   3,   1,   2,

};

Word32 Multiply7Table[128*128] = {
	0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
	0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,  96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
	0,   2,   4,   6,   8,  10,  12,  14,  16,  18,  20,  22,  24,  26,  28,  30,  32,  34,  36,  38,  40,  42,  44,  46,  48,  50,  52,  54,  56,  58,  60,  62,  64,  66,  68,  70,  72,  74,  76,  78,  80,  82,  84,  86,  88,  90,  92,  94,  96,  98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126,   3,   1,   7,   5,  11,   9,  15,  13,  19,  17,  23,  21,  27,  25,  31,  29,  35,  33,  39,  37,  43,  41,  47,  45,  51,  49,  55,  53,  59,  57,  63,  61,  67,  65,  71,  69,  75,  73,  79,  77,  83,  81,  87,  85,  91,  89,  95,  93,  99,  97, 103, 101, 107, 105, 111, 109, 115, 113, 119, 117, 123, 121, 127, 125,
	0,   3,   6,   5,  12,  15,  10,   9,  24,  27,  30,  29,  20,  23,  18,  17,  48,  51,  54,  53,  60,  63,  58,  57,  40,  43,  46,  45,  36,  39,  34,  33,  96,  99, 102, 101, 108, 111, 106, 105, 120, 123, 126, 125, 116, 119, 114, 113,  80,  83,  86,  85,  92,  95,  90,  89,  72,  75,  78,  77,  68,  71,  66,  65,  67,  64,  69,  70,  79,  76,  73,  74,  91,  88,  93,  94,  87,  84,  81,  82, 115, 112, 117, 118, 127, 124, 121, 122, 107, 104, 109, 110, 103, 100,  97,  98,  35,  32,  37,  38,  47,  44,  41,  42,  59,  56,  61,  62,  55,  52,  49,  50,  19,  16,  21,  22,  31,  28,  25,  26,  11,   8,  13,  14,   7,   4,   1,   2,
	0,   4,   8,  12,  16,  20,  24,  28,  32,  36,  40,  44,  48,  52,  56,  60,  64,  68,  72,  76,  80,  84,  88,  92,  96, 100, 104, 108, 112, 116, 120, 124,   3,   7,  11,  15,  19,  23,  27,  31,  35,  39,  43,  47,  51,  55,  59,  63,  67,  71,  75,  79,  83,  87,  91,  95,  99, 103, 107, 111, 115, 119, 123, 127,   6,   2,  14,  10,  22,  18,  30,  26,  38,  34,  46,  42,  54,  50,  62,  58,  70,  66,  78,  74,  86,  82,  94,  90, 102,  98, 110, 106, 118, 114, 126, 122,   5,   1,  13,   9,  21,  17,  29,  25,  37,  33,  45,  41,  53,  49,  61,  57,  69,  65,  77,  73,  85,  81,  93,  89, 101,  97, 109, 105, 117, 113, 125, 121,
	0,   5,  10,  15,  20,  17,  30,  27,  40,  45,  34,  39,  60,  57,  54,  51,  80,  85,  90,  95,  68,  65,  78,  75, 120, 125, 114, 119, 108, 105, 102,  99,  35,  38,  41,  44,  55,  50,  61,  56,  11,  14,   1,   4,  31,  26,  21,  16, 115, 118, 121, 124, 103,  98, 109, 104,  91,  94,  81,  84,  79,  74,  69,  64,  70,  67,  76,  73,  82,  87,  88,  93, 110, 107, 100,  97, 122, 127, 112, 117,  22,  19,  28,  25,   2,   7,   8,  13,  62,  59,  52,  49,  42,  47,  32,  37, 101,  96, 111, 106, 113, 116, 123, 126,  77,  72,  71,  66,  89,  92,  83,  86,  53,  48,  63,  58,  33,  36,  43,  46,  29,  24,  23,  18,   9,  12,   3,   6,
	0,   6,  12,  10,  24,  30,  20,  18,  48,  54,  60,  58,  40,  46,  36,  34,  96, 102, 108, 106, 120, 126, 116, 114,  80,  86,  92,  90,  72,  78,  68,  66,  67,  69,  79,  73,  91,  93,  87,  81, 115, 117, 127, 121, 107, 109, 103,  97,  35,  37,  47,  41,  59,  61,  55,  49,  19,  21,  31,  25,  11,  13,   7,   1,   5,   3,   9,  15,  29,  27,  17,  23,  53,  51,  57,  63,  45,  43,  33,  39, 101,  99, 105, 111, 125, 123, 113, 119,  85,  83,  89,  95,  77,  75,  65,  71,  70,  64,  74,  76,  94,  88,  82,  84, 118, 112, 122, 124, 110, 104,  98, 100,  38,  32,  42,  44,  62,  56,  50,  52,  22,  16,  26,  28,  14,   8,   2,   4,
	0,   7,  14,   9,  28,  27,  18,  21,  56,  63,  54,  49,  36,  35,  42,  45, 112, 119, 126, 121, 108, 107,  98, 101,  72,  79,  70,  65,  84,  83,  90,  93,  99, 100, 109, 106, 127, 120, 113, 118,  91,  92,  85,  82,  71,  64,  73,  78,  19,  20,  29,  26,  15,   8,   1,   6,  43,  44,  37,  34,  55,  48,  57,  62,  69,  66,  75,  76,  89,  94,  87,  80, 125, 122, 115, 116,  97, 102, 111, 104,  53,  50,  59,  60,  41,  46,  39,  32,  13,  10,   3,   4,  17,  22,  31,  24,  38,  33,  40,  47,  58,  61,  52,  51,  30,  25,  16,  23,   2,   5,  12,  11,  86,  81,  88,  95,  74,  77,  68,  67, 110, 105,  96, 103, 114, 117, 124, 123,
	0,   8,  16,  24,  32,  40,  48,  56,  64,  72,  80,  88,  96, 104, 112, 120,   3,  11,  19,  27,  35,  43,  51,  59,  67,  75,  83,  91,  99, 107, 115, 123,   6,  14,  22,  30,  38,  46,  54,  62,  70,  78,  86,  94, 102, 110, 118, 126,   5,  13,  21,  29,  37,  45,  53,  61,  69,  77,  85,  93, 101, 109, 117, 125,  12,   4,  28,  20,  44,  36,  60,  52,  76,  68,  92,  84, 108, 100, 124, 116,  15,   7,  31,  23,  47,  39,  63,  55,  79,  71,  95,  87, 111, 103, 127, 119,  10,   2,  26,  18,  42,  34,  58,  50,  74,  66,  90,  82, 106,  98, 122, 114,   9,   1,  25,  17,  41,  33,  57,  49,  73,  65,  89,  81, 105,  97, 121, 113,
	0,   9,  18,  27,  36,  45,  54,  63,  72,  65,  90,  83, 108, 101, 126, 119,  19,  26,   1,   8,  55,  62,  37,  44,  91,  82,  73,  64, 127, 118, 109, 100,  38,  47,  52,  61,   2,  11,  16,  25, 110, 103, 124, 117,  74,  67,  88,  81,  53,  60,  39,  46,  17,  24,   3,  10, 125, 116, 111, 102,  89,  80,  75,  66,  76,  69,  94,  87, 104,  97, 122, 115,   4,  13,  22,  31,  32,  41,  50,  59,  95,  86,  77,  68, 123, 114, 105,  96,  23,  30,   5,  12,  51,  58,  33,  40, 106,  99, 120, 113,  78,  71,  92,  85,  34,  43,  48,  57,   6,  15,  20,  29, 121, 112, 107,  98,  93,  84,  79,  70,  49,  56,  35,  42,  21,  28,   7,  14,
	0,  10,  20,  30,  40,  34,  60,  54,  80,  90,  68,  78, 120, 114, 108, 102,  35,  41,  55,  61,  11,   1,  31,  21, 115, 121, 103, 109,  91,  81,  79,  69,  70,  76,  82,  88, 110, 100, 122, 112,  22,  28,   2,   8,  62,  52,  42,  32, 101, 111, 113, 123,  77,  71,  89,  83,  53,  63,  33,  43,  29,  23,   9,   3,  15,   5,  27,  17,  39,  45,  51,  57,  95,  85,  75,  65, 119, 125,  99, 105,  44,  38,  56,  50,   4,  14,  16,  26, 124, 118, 104,  98,  84,  94,  64,  74,  73,  67,  93,  87,  97, 107, 117, 127,  25,  19,  13,   7,  49,  59,  37,  47, 106,  96, 126, 116,  66,  72,  86,  92,  58,  48,  46,  36,  18,  24,   6,  12,
	0,  11,  22,  29,  44,  39,  58,  49,  88,  83,  78,  69, 116, 127,  98, 105,  51,  56,  37,  46,  31,  20,   9,   2, 107,  96, 125, 118,  71,  76,  81,  90, 102, 109, 112, 123,  74,  65,  92,  87,  62,  53,  40,  35,  18,  25,   4,  15,  85,  94,  67,  72, 121, 114, 111, 100,  13,   6,  27,  16,  33,  42,  55,  60,  79,  68,  89,  82,  99, 104, 117, 126,  23,  28,   1,  10,  59,  48,  45,  38, 124, 119, 106,  97,  80,  91,  70,  77,  36,  47,  50,  57,   8,   3,  30,  21,  41,  34,  63,  52,   5,  14,  19,  24, 113, 122, 103, 108,  93,  86,  75,  64,  26,  17,  12,   7,  54,  61,  32,  43,  66,  73,  84,  95, 110, 101, 120, 115,
	0,  12,  24,  20,  48,  60,  40,  36,  96, 108, 120, 116,  80,  92,  72,  68,  67,  79,  91,  87, 115, 127, 107, 103,  35,  47,  59,  55,  19,  31,  11,   7,   5,   9,  29,  17,  53,  57,  45,  33, 101, 105, 125, 113,  85,  89,  77,  65,  70,  74,  94,  82, 118, 122, 110,  98,  38,  42,  62,  50,  22,  26,  14,   2,  10,   6,  18,  30,  58,  54,  34,  46, 106, 102, 114, 126,  90,  86,  66,  78,  73,  69,  81,  93, 121, 117,  97, 109,  41,  37,  49,  61,  25,  21,   1,  13,  15,   3,  23,  27,  63,  51,  39,  43, 111,  99, 119, 123,  95,  83,  71,  75,  76,  64,  84,  88, 124, 112, 100, 104,  44,  32,  52,  56,  28,  16,   4,   8,
	0,  13,  26,  23,  52,  57,  46,  35, 104, 101, 114, 127,  92,  81,  70,  75,  83,  94,  73,  68, 103, 106, 125, 112,  59,  54,  33,  44,  15,   2,  21,  24,  37,  40,  63,  50,  17,  28,  11,   6,  77,  64,  87,  90, 121, 116,  99, 110, 118, 123, 108,  97,  66,  79,  88,  85,  30,  19,   4,   9,  42,  39,  48,  61,  74,  71,  80,  93, 126, 115, 100, 105,  34,  47,  56,  53,  22,  27,  12,   1,  25,  20,   3,  14,  45,  32,  55,  58, 113, 124, 107, 102,  69,  72,  95,  82, 111,  98, 117, 120,  91,  86,  65,  76,   7,  10,  29,  16,  51,  62,  41,  36,  60,  49,  38,  43,   8,   5,  18,  31,  84,  89,  78,  67,  96, 109, 122, 119,
	0,  14,  28,  18,  56,  54,  36,  42, 112, 126, 108,  98,  72,  70,  84,  90,  99, 109, 127, 113,  91,  85,  71,  73,  19,  29,  15,   1,  43,  37,  55,  57,  69,  75,  89,  87, 125, 115,  97, 111,  53,  59,  41,  39,  13,   3,  17,  31,  38,  40,  58,  52,  30,  16,   2,  12,  86,  88,  74,  68, 110,  96, 114, 124,   9,   7,  21,  27,  49,  63,  45,  35, 121, 119, 101, 107,  65,  79,  93,  83, 106, 100, 118, 120,  82,  92,  78,  64,  26,  20,   6,   8,  34,  44,  62,  48,  76,  66,  80,  94, 116, 122, 104, 102,  60,  50,  32,  46,   4,  10,  24,  22,  47,  33,  51,  61,  23,  25,  11,   5,  95,  81,  67,  77, 103, 105, 123, 117,
	0,  15,  30,  17,  60,  51,  34,  45, 120, 119, 102, 105,  68,  75,  90,  85, 115, 124, 109,  98,  79,  64,  81,  94,  11,   4,  21,  26,  55,  56,  41,  38, 101, 106, 123, 116,  89,  86,  71,  72,  29,  18,   3,  12,  33,  46,  63,  48,  22,  25,   8,   7,  42,  37,  52,  59, 110,  97, 112, 127,  82,  93,  76,  67,  73,  70,  87,  88, 117, 122, 107, 100,  49,  62,  47,  32,  13,   2,  19,  28,  58,  53,  36,  43,   6,   9,  24,  23,  66,  77,  92,  83, 126, 113,  96, 111,  44,  35,  50,  61,  16,  31,  14,   1,  84,  91,  74,  69, 104, 103, 118, 121,  95,  80,  65,  78,  99, 108, 125, 114,  39,  40,  57,  54,  27,  20,   5,  10,
	0,  16,  32,  48,  64,  80,  96, 112,   3,  19,  35,  51,  67,  83,  99, 115,   6,  22,  38,  54,  70,  86, 102, 118,   5,  21,  37,  53,  69,  85, 101, 117,  12,  28,  44,  60,  76,  92, 108, 124,  15,  31,  47,  63,  79,  95, 111, 127,  10,  26,  42,  58,  74,  90, 106, 122,   9,  25,  41,  57,  73,  89, 105, 121,  24,   8,  56,  40,  88,  72, 120, 104,  27,  11,  59,  43,  91,  75, 123, 107,  30,  14,  62,  46,  94,  78, 126, 110,  29,  13,  61,  45,  93,  77, 125, 109,  20,   4,  52,  36,  84,  68, 116, 100,  23,   7,  55,  39,  87,  71, 119, 103,  18,   2,  50,  34,  82,  66, 114,  98,  17,   1,  49,  33,  81,  65, 113,  97,
	0,  17,  34,  51,  68,  85, 102, 119,  11,  26,  41,  56,  79,  94, 109, 124,  22,   7,  52,  37,  82,  67, 112,  97,  29,  12,  63,  46,  89,  72, 123, 106,  44,  61,  14,  31, 104, 121,  74,  91,  39,  54,   5,  20,  99, 114,  65,  80,  58,  43,  24,   9, 126, 111,  92,  77,  49,  32,  19,   2, 117, 100,  87,  70,  88,  73, 122, 107,  28,  13,  62,  47,  83,  66, 113,  96,  23,   6,  53,  36,  78,  95, 108, 125,  10,  27,  40,  57,  69,  84, 103, 118,   1,  16,  35,  50, 116, 101,  86,  71,  48,  33,  18,   3, 127, 110,  93,  76,  59,  42,  25,   8,  98, 115,  64,  81,  38,  55,   4,  21, 105, 120,  75,  90,  45,  60,  15,  30,
	0,  18,  36,  54,  72,  90, 108, 126,  19,   1,  55,  37,  91,  73, 127, 109,  38,  52,   2,  16, 110, 124,  74,  88,  53,  39,  17,   3, 125, 111,  89,  75,  76,  94, 104, 122,   4,  22,  32,  50,  95,  77, 123, 105,  23,   5,  51,  33, 106, 120,  78,  92,  34,  48,   6,  20, 121, 107,  93,  79,  49,  35,  21,   7,  27,   9,  63,  45,  83,  65, 119, 101,   8,  26,  44,  62,  64,  82, 100, 118,  61,  47,  25,  11, 117, 103,  81,  67,  46,  60,  10,  24, 102, 116,  66,  80,  87,  69, 115,  97,  31,  13,  59,  41,  68,  86,  96, 114,  12,  30,  40,  58, 113,  99,  85,  71,  57,  43,  29,  15,  98, 112,  70,  84,  42,  56,  14,  28,
	0,  19,  38,  53,  76,  95, 106, 121,  27,   8,  61,  46,  87,  68, 113,  98,  54,  37,  16,   3, 122, 105,  92,  79,  45,  62,  11,  24,  97, 114,  71,  84, 108, 127,  74,  89,  32,  51,   6,  21, 119, 100,  81,  66,  59,  40,  29,  14,  90,  73, 124, 111,  22,   5,  48,  35,  65,  82, 103, 116,  13,  30,  43,  56,  91,  72, 125, 110,  23,   4,  49,  34,  64,  83, 102, 117,  12,  31,  42,  57, 109, 126,  75,  88,  33,  50,   7,  20, 118, 101,  80,  67,  58,  41,  28,  15,  55,  36,  17,   2, 123, 104,  93,  78,  44,  63,  10,  25,  96, 115,  70,  85,   1,  18,  39,  52,  77,  94, 107, 120,  26,   9,  60,  47,  86,  69, 112,  99,
	0,  20,  40,  60,  80,  68, 120, 108,  35,  55,  11,  31, 115, 103,  91,  79,  70,  82, 110, 122,  22,   2,  62,  42, 101, 113,  77,  89,  53,  33,  29,   9,  15,  27,  39,  51,  95,  75, 119,  99,  44,  56,   4,  16, 124, 104,  84,  64,  73,  93,  97, 117,  25,  13,  49,  37, 106, 126,  66,  86,  58,  46,  18,   6,  30,  10,  54,  34,  78,  90, 102, 114,  61,  41,  21,   1, 109, 121,  69,  81,  88,  76, 112, 100,   8,  28,  32,  52, 123, 111,  83,  71,  43,  63,   3,  23,  17,   5,  57,  45,  65,  85, 105, 125,  50,  38,  26,  14,  98, 118,  74,  94,  87,  67, 127, 107,   7,  19,  47,  59, 116,  96,  92,  72,  36,  48,  12,  24,
	0,  21,  42,  63,  84,  65, 126, 107,  43,  62,   1,  20, 127, 106,  85,  64,  86,  67, 124, 105,   2,  23,  40,  61, 125, 104,  87,  66,  41,  60,   3,  22,  47,  58,   5,  16, 123, 110,  81,  68,   4,  17,  46,  59,  80,  69, 122, 111, 121, 108,  83,  70,  45,  56,   7,  18,  82,  71, 120, 109,   6,  19,  44,  57,  94,  75, 116,  97,  10,  31,  32,  53, 117,  96,  95,  74,  33,  52,  11,  30,   8,  29,  34,  55,  92,  73, 118,  99,  35,  54,   9,  28, 119,  98,  93,  72, 113, 100,  91,  78,  37,  48,  15,  26,  90,  79, 112, 101,  14,  27,  36,  49,  39,  50,  13,  24, 115, 102,  89,  76,  12,  25,  38,  51,  88,  77, 114, 103,
	0,  22,  44,  58,  88,  78, 116,  98,  51,  37,  31,   9, 107, 125,  71,  81, 102, 112,  74,  92,  62,  40,  18,   4,  85,  67, 121, 111,  13,  27,  33,  55,  79,  89,  99, 117,  23,   1,  59,  45, 124, 106,  80,  70,  36,  50,   8,  30,  41,  63,   5,  19, 113, 103,  93,  75,  26,  12,  54,  32,  66,  84, 110, 120,  29,  11,  49,  39,  69,  83, 105, 127,  46,  56,   2,  20, 118,  96,  90,  76, 123, 109,  87,  65,  35,  53,  15,  25,  72,  94, 100, 114,  16,   6,  60,  42,  82,  68, 126, 104,  10,  28,  38,  48,  97, 119,  77,  91,  57,  47,  21,   3,  52,  34,  24,  14, 108, 122,  64,  86,   7,  17,  43,  61,  95,  73, 115, 101,
	0,  23,  46,  57,  92,  75, 114, 101,  59,  44,  21,   2, 103, 112,  73,  94, 118,  97,  88,  79,  42,  61,   4,  19,  77,  90,  99, 116,  17,   6,  63,  40, 111, 120,  65,  86,  51,  36,  29,  10,  84,  67, 122, 109,   8,  31,  38,  49,  25,  14,  55,  32,  69,  82, 107, 124,  34,  53,  12,  27, 126, 105,  80,  71,  93,  74, 115, 100,   1,  22,  47,  56, 102, 113,  72,  95,  58,  45,  20,   3,  43,  60,   5,  18, 119,  96,  89,  78,  16,   7,  62,  41,  76,  91,  98, 117,  50,  37,  28,  11, 110, 121,  64,  87,   9,  30,  39,  48,  85,  66, 123, 108,  68,  83, 106, 125,  24,  15,  54,  33, 127, 104,  81,  70,  35,  52,  13,  26,
	0,  24,  48,  40,  96, 120,  80,  72,  67,  91, 115, 107,  35,  59,  19,  11,   5,  29,  53,  45, 101, 125,  85,  77,  70,  94, 118, 110,  38,  62,  22,  14,  10,  18,  58,  34, 106, 114,  90,  66,  73,  81, 121,  97,  41,  49,  25,   1,  15,  23,  63,  39, 111, 119,  95,  71,  76,  84, 124, 100,  44,  52,  28,   4,  20,  12,  36,  60, 116, 108,  68,  92,  87,  79, 103, 127,  55,  47,   7,  31,  17,   9,  33,  57, 113, 105,  65,  89,  82,  74,  98, 122,  50,  42,   2,  26,  30,   6,  46,  54, 126, 102,  78,  86,  93,  69, 109, 117,  61,  37,  13,  21,  27,   3,  43,  51, 123,  99,  75,  83,  88,  64, 104, 112,  56,  32,   8,  16,
	0,  25,  50,  43, 100, 125,  86,  79,  75,  82, 121,  96,  47,  54,  29,   4,  21,  12,  39,  62, 113, 104,  67,  90,  94,  71, 108, 117,  58,  35,   8,  17,  42,  51,  24,   1,  78,  87, 124, 101,  97, 120,  83,  74,   5,  28,  55,  46,  63,  38,  13,  20,  91,  66, 105, 112, 116, 109,  70,  95,  16,   9,  34,  59,  84,  77, 102, 127,  48,  41,   2,  27,  31,   6,  45,  52, 123,  98,  73,  80,  65,  88, 115, 106,  37,  60,  23,  14,  10,  19,  56,  33, 110, 119,  92,  69, 126, 103,  76,  85,  26,   3,  40,  49,  53,  44,   7,  30,  81,  72,  99, 122, 107, 114,  89,  64,  15,  22,  61,  36,  32,  57,  18,  11,  68,  93, 118, 111,
	0,  26,  52,  46, 104, 114,  92,  70,  83,  73, 103, 125,  59,  33,  15,  21,  37,  63,  17,  11,  77,  87, 121,  99, 118, 108,  66,  88,  30,   4,  42,  48,  74,  80, 126, 100,  34,  56,  22,  12,  25,   3,  45,  55, 113, 107,  69,  95, 111, 117,  91,  65,   7,  29,  51,  41,  60,  38,   8,  18,  84,  78,  96, 122,  23,  13,  35,  57, 127, 101,  75,  81,  68,  94, 112, 106,  44,  54,  24,   2,  50,  40,   6,  28,  90,  64, 110, 116,  97, 123,  85,  79,   9,  19,  61,  39,  93,  71, 105, 115,  53,  47,   1,  27,  14,  20,  58,  32, 102, 124,  82,  72, 120,  98,  76,  86,  16,  10,  36,  62,  43,  49,  31,   5,  67,  89, 119, 109,
	0,  27,  54,  45, 108, 119,  90,  65,  91,  64, 109, 118,  55,  44,   1,  26,  53,  46,   3,  24,  89,  66, 111, 116, 110, 117,  88,  67,   2,  25,  52,  47, 106, 113,  92,  71,   6,  29,  48,  43,  49,  42,   7,  28,  93,  70, 107, 112,  95,  68, 105, 114,  51,  40,   5,  30,   4,  31,  50,  41, 104, 115,  94,  69,  87,  76,  97, 122,  59,  32,  13,  22,  12,  23,  58,  33,  96, 123,  86,  77,  98, 121,  84,  79,  14,  21,  56,  35,  57,  34,  15,  20,  85,  78,  99, 120,  61,  38,  11,  16,  81,  74, 103, 124, 102, 125,  80,  75,  10,  17,  60,  39,   8,  19,  62,  37, 100, 127,  82,  73,  83,  72, 101, 126,  63,  36,   9,  18,
	0,  28,  56,  36, 112, 108,  72,  84,  99, 127,  91,  71,  19,  15,  43,  55,  69,  89, 125,  97,  53,  41,  13,  17,  38,  58,  30,   2,  86,  74, 110, 114,   9,  21,  49,  45, 121, 101,  65,  93, 106, 118,  82,  78,  26,   6,  34,  62,  76,  80, 116, 104,  60,  32,   4,  24,  47,  51,  23,  11,  95,  67, 103, 123,  18,  14,  42,  54,  98, 126,  90,  70, 113, 109,  73,  85,   1,  29,  57,  37,  87,  75, 111, 115,  39,  59,  31,   3,  52,  40,  12,  16,  68,  88, 124,  96,  27,   7,  35,  63, 107, 119,  83,  79, 120, 100,  64,  92,   8,  20,  48,  44,  94,  66, 102, 122,  46,  50,  22,  10,  61,  33,   5,  25,  77,  81, 117, 105,
	0,  29,  58,  39, 116, 105,  78,  83, 107, 118,  81,  76,  31,   2,  37,  56,  85,  72, 111, 114,  33,  60,  27,   6,  62,  35,   4,  25,  74,  87, 112, 109,  41,  52,  19,  14,  93,  64, 103, 122,  66,  95, 120, 101,  54,  43,  12,  17, 124,  97,  70,  91,   8,  21,  50,  47,  23,  10,  45,  48,  99, 126,  89,  68,  82,  79, 104, 117,  38,  59,  28,   1,  57,  36,   3,  30,  77,  80, 119, 106,   7,  26,  61,  32, 115, 110,  73,  84, 108, 113,  86,  75,  24,   5,  34,  63, 123, 102,  65,  92,  15,  18,  53,  40,  16,  13,  42,  55, 100, 121,  94,  67,  46,  51,  20,   9,  90,  71,  96, 125,  69,  88, 127,  98,  49,  44,  11,  22,
	0,  30,  60,  34, 120, 102,  68,  90, 115, 109,  79,  81,  11,  21,  55,  41, 101, 123,  89,  71,  29,   3,  33,  63,  22,   8,  42,  52, 110, 112,  82,  76,  73,  87, 117, 107,  49,  47,  13,  19,  58,  36,   6,  24,  66,  92, 126,  96,  44,  50,  16,  14,  84,  74, 104, 118,  95,  65,  99, 125,  39,  57,  27,   5,  17,  15,  45,  51, 105, 119,  85,  75,  98, 124,  94,  64,  26,   4,  38,  56, 116, 106,  72,  86,  12,  18,  48,  46,   7,  25,  59,  37, 127,  97,  67,  93,  88,  70, 100, 122,  32,  62,  28,   2,  43,  53,  23,   9,  83,  77, 111, 113,  61,  35,   1,  31,  69,  91, 121, 103,  78,  80, 114, 108,  54,  40,  10,  20,
	0,  31,  62,  33, 124,  99,  66,  93, 123, 100,  69,  90,   7,  24,  57,  38, 117, 106,  75,  84,   9,  22,  55,  40,  14,  17,  48,  47, 114, 109,  76,  83, 105, 118,  87,  72,  21,  10,  43,  52,  18,  13,  44,  51, 110, 113,  80,  79,  28,   3,  34,  61,  96, 127,  94,  65, 103, 120,  89,  70,  27,   4,  37,  58,  81,  78, 111, 112,  45,  50,  19,  12,  42,  53,  20,  11,  86,  73, 104, 119,  36,  59,  26,   5,  88,  71, 102, 121,  95,  64,  97, 126,  35,  60,  29,   2,  56,  39,   6,  25,  68,  91, 122, 101,  67,  92, 125,  98,  63,  32,   1,  30,  77,  82, 115, 108,  49,  46,  15,  16,  54,  41,   8,  23,  74,  85, 116, 107,
	0,  32,  64,  96,   3,  35,  67,  99,   6,  38,  70, 102,   5,  37,  69, 101,  12,  44,  76, 108,  15,  47,  79, 111,  10,  42,  74, 106,   9,  41,  73, 105,  24,  56,  88, 120,  27,  59,  91, 123,  30,  62,  94, 126,  29,  61,  93, 125,  20,  52,  84, 116,  23,  55,  87, 119,  18,  50,  82, 114,  17,  49,  81, 113,  48,  16, 112,  80,  51,  19, 115,  83,  54,  22, 118,  86,  53,  21, 117,  85,  60,  28, 124,  92,  63,  31, 127,  95,  58,  26, 122,  90,  57,  25, 121,  89,  40,   8, 104,  72,  43,  11, 107,  75,  46,  14, 110,  78,  45,  13, 109,  77,  36,   4, 100,  68,  39,   7, 103,  71,  34,   2,  98,  66,  33,   1,  97,  65,
	0,  33,  66,  99,   7,  38,  69, 100,  14,  47,  76, 109,   9,  40,  75, 106,  28,  61,  94, 127,  27,  58,  89, 120,  18,  51,  80, 113,  21,  52,  87, 118,  56,  25, 122,  91,  63,  30, 125,  92,  54,  23, 116,  85,  49,  16, 115,  82,  36,   5, 102,  71,  35,   2,  97,  64,  42,  11, 104,  73,  45,  12, 111,  78, 112,  81,  50,  19, 119,  86,  53,  20, 126,  95,  60,  29, 121,  88,  59,  26, 108,  77,  46,  15, 107,  74,  41,   8,  98,  67,  32,   1, 101,  68,  39,   6,  72, 105,  10,  43,  79, 110,  13,  44,  70, 103,   4,  37,  65,  96,   3,  34,  84, 117,  22,  55,  83, 114,  17,  48,  90, 123,  24,  57,  93, 124,  31,  62,
	0,  34,  68, 102,  11,  41,  79, 109,  22,  52,  82, 112,  29,  63,  89, 123,  44,  14, 104,  74,  39,   5,  99,  65,  58,  24, 126,  92,  49,  19, 117,  87,  88, 122,  28,  62,  83, 113,  23,  53,  78, 108,  10,  40,  69, 103,   1,  35, 116,  86,  48,  18, 127,  93,  59,  25,  98,  64,  38,   4, 105,  75,  45,  15,  51,  17, 119,  85,  56,  26, 124,  94,  37,   7,  97,  67,  46,  12, 106,  72,  31,  61,  91, 121,  20,  54,  80, 114,   9,  43,  77, 111,   2,  32,  70, 100, 107,  73,  47,  13,  96,  66,  36,   6, 125,  95,  57,  27, 118,  84,  50,  16,  71, 101,   3,  33,  76, 110,   8,  42,  81, 115,  21,  55,  90, 120,  30,  60,
	0,  35,  70, 101,  15,  44,  73, 106,  30,  61,  88, 123,  17,  50,  87, 116,  60,  31, 122,  89,  51,  16, 117,  86,  34,   1, 100,  71,  45,  14, 107,  72, 120,  91,  62,  29, 119,  84,  49,  18, 102,  69,  32,   3, 105,  74,  47,  12,  68, 103,   2,  33,  75, 104,  13,  46,  90, 121,  28,  63,  85, 118,  19,  48, 115,  80,  53,  22, 124,  95,  58,  25, 109,  78,  43,   8,  98,  65,  36,   7,  79, 108,   9,  42,  64,  99,   6,  37,  81, 114,  23,  52,  94, 125,  24,  59,  11,  40,  77, 110,   4,  39,  66,  97,  21,  54,  83, 112,  26,  57,  92, 127,  55,  20, 113,  82,  56,  27, 126,  93,  41,  10, 111,  76,  38,   5,  96,  67,
	0,  36,  72, 108,  19,  55,  91, 127,  38,   2, 110,  74,  53,  17, 125,  89,  76, 104,   4,  32,  95, 123,  23,  51, 106,  78,  34,   6, 121,  93,  49,  21,  27,  63,  83, 119,   8,  44,  64, 100,  61,  25, 117,  81,  46,  10, 102,  66,  87, 115,  31,  59,  68,  96,  12,  40, 113,  85,  57,  29,  98,  70,  42,  14,  54,  18, 126,  90,  37,   1, 109,  73,  16,  52,  88, 124,   3,  39,  75, 111, 122,  94,  50,  22, 105,  77,  33,   5,  92, 120,  20,  48,  79, 107,   7,  35,  45,   9, 101,  65,  62,  26, 118,  82,  11,  47,  67, 103,  24,  60,  80, 116,  97,  69,  41,  13, 114,  86,  58,  30,  71,  99,  15,  43,  84, 112,  28,  56,
	0,  37,  74, 111,  23,  50,  93, 120,  46,  11, 100,  65,  57,  28, 115,  86,  92, 121,  22,  51,  75, 110,   1,  36, 114,  87,  56,  29, 101,  64,  47,  10,  59,  30, 113,  84,  44,   9, 102,  67,  21,  48,  95, 122,   2,  39,  72, 109, 103,  66,  45,   8, 112,  85,  58,  31,  73, 108,   3,  38,  94, 123,  20,  49, 118,  83,  60,  25,  97,  68,  43,  14,  88, 125,  18,  55,  79, 106,   5,  32,  42,  15,  96,  69,  61,  24, 119,  82,   4,  33,  78, 107,  19,  54,  89, 124,  77, 104,   7,  34,  90, 127,  16,  53,  99,  70,  41,  12, 116,  81,  62,  27,  17,  52,  91, 126,   6,  35,  76, 105,  63,  26, 117,  80,  40,  13,  98,  71,
	0,  38,  76, 106,  27,  61,  87, 113,  54,  16, 122,  92,  45,  11,  97,  71, 108,  74,  32,   6, 119,  81,  59,  29,  90, 124,  22,  48,  65, 103,  13,  43,  91, 125,  23,  49,  64, 102,  12,  42, 109,  75,  33,   7, 118,  80,  58,  28,  55,  17, 123,  93,  44,  10,  96,  70,   1,  39,  77, 107,  26,  60,  86, 112,  53,  19, 121,  95,  46,   8,  98,  68,   3,  37,  79, 105,  24,  62,  84, 114,  89, 127,  21,  51,  66, 100,  14,  40, 111,  73,  35,   5, 116,  82,  56,  30, 110,  72,  34,   4, 117,  83,  57,  31,  88, 126,  20,  50,  67, 101,  15,  41,   2,  36,  78, 104,  25,  63,  85, 115,  52,  18, 120,  94,  47,   9,  99,  69,
	0,  39,  78, 105,  31,  56,  81, 118,  62,  25, 112,  87,  33,   6, 111,  72, 124,  91,  50,  21,  99,  68,  45,  10,  66, 101,  12,  43,  93, 122,  19,  52, 123,  92,  53,  18, 100,  67,  42,  13,  69,  98,  11,  44,  90, 125,  20,  51,   7,  32,  73, 110,  24,  63,  86, 113,  57,  30, 119,  80,  38,   1, 104,  79, 117,  82,  59,  28, 106,  77,  36,   3,  75, 108,   5,  34,  84, 115,  26,  61,   9,  46,  71,  96,  22,  49,  88, 127,  55,  16, 121,  94,  40,  15, 102,  65,  14,  41,  64, 103,  17,  54,  95, 120,  48,  23, 126,  89,  47,   8,  97,  70, 114,  85,  60,  27, 109,  74,  35,   4,  76, 107,   2,  37,  83, 116,  29,  58,
	0,  40,  80, 120,  35,  11, 115,  91,  70, 110,  22,  62, 101,  77,  53,  29,  15,  39,  95, 119,  44,   4, 124,  84,  73,  97,  25,  49, 106,  66,  58,  18,  30,  54,  78, 102,  61,  21, 109,  69,  88, 112,   8,  32, 123,  83,  43,   3,  17,  57,  65, 105,  50,  26,  98,  74,  87, 127,   7,  47, 116,  92,  36,  12,  60,  20, 108,  68,  31,  55,  79, 103, 122,  82,  42,   2,  89, 113,   9,  33,  51,  27,  99,  75,  16,  56,  64, 104, 117,  93,  37,  13,  86, 126,   6,  46,  34,  10, 114,  90,   1,  41,  81, 121, 100,  76,  52,  28,  71, 111,  23,  63,  45,   5, 125,  85,  14,  38,  94, 118, 107,  67,  59,  19,  72,  96,  24,  48,
	0,  41,  82, 123,  39,  14, 117,  92,  78, 103,  28,  53, 105,  64,  59,  18,  31,  54,  77, 100,  56,  17, 106,  67,  81, 120,   3,  42, 118,  95,  36,  13,  62,  23, 108,  69,  25,  48,  75,  98, 112,  89,  34,  11,  87, 126,   5,  44,  33,   8, 115,  90,   6,  47,  84, 125, 111,  70,  61,  20,  72,  97,  26,  51, 124,  85,  46,   7,  91, 114,   9,  32,  50,  27,  96,  73,  21,  60,  71, 110,  99,  74,  49,  24,  68, 109,  22,  63,  45,   4, 127,  86,  10,  35,  88, 113,  66, 107,  16,  57, 101,  76,  55,  30,  12,  37,  94, 119,  43,   2, 121,  80,  93, 116,  15,  38, 122,  83,  40,   1,  19,  58,  65, 104,  52,  29, 102,  79,
	0,  42,  84, 126,  43,   1, 127,  85,  86, 124,   2,  40, 125,  87,  41,   3,  47,   5, 123,  81,   4,  46,  80, 122, 121,  83,  45,   7,  82, 120,   6,  44,  94, 116,  10,  32, 117,  95,  33,  11,   8,  34,  92, 118,  35,   9, 119,  93, 113,  91,  37,  15,  90, 112,  14,  36,  39,  13, 115,  89,  12,  38,  88, 114,  63,  21, 107,  65,  20,  62,  64, 106, 105,  67,  61,  23,  66, 104,  22,  60,  16,  58,  68, 110,  59,  17, 111,  69,  70, 108,  18,  56, 109,  71,  57,  19,  97,  75,  53,  31,  74,  96,  30,  52,  55,  29,  99,  73,  28,  54,  72,  98,  78, 100,  26,  48, 101,  79,  49,  27,  24,  50,  76, 102,  51,  25, 103,  77,
	0,  43,  86, 125,  47,   4, 121,  82,  94, 117,   8,  35, 113,  90,  39,  12,  63,  20, 105,  66,  16,  59,  70, 109,  97,  74,  55,  28,  78, 101,  24,  51, 126,  85,  40,   3,  81, 122,   7,  44,  32,  11, 118,  93,  15,  36,  89, 114,  65, 106,  23,  60, 110,  69,  56,  19,  31,  52,  73,  98,  48,  27, 102,  77, 127,  84,  41,   2,  80, 123,   6,  45,  33,  10, 119,  92,  14,  37,  88, 115,  64, 107,  22,  61, 111,  68,  57,  18,  30,  53,  72,  99,  49,  26, 103,  76,   1,  42,  87, 124,  46,   5, 120,  83,  95, 116,   9,  34, 112,  91,  38,  13,  62,  21, 104,  67,  17,  58,  71, 108,  96,  75,  54,  29,  79, 100,  25,  50,
	0,  44,  88, 116,  51,  31, 107,  71, 102,  74,  62,  18,  85, 121,  13,  33,  79,  99,  23,  59, 124,  80,  36,   8,  41,   5, 113,  93,  26,  54,  66, 110,  29,  49,  69, 105,  46,   2, 118,  90, 123,  87,  35,  15,  72, 100,  16,  60,  82, 126,  10,  38,  97,  77,  57,  21,  52,  24, 108,  64,   7,  43,  95, 115,  58,  22,  98,  78,   9,  37,  81, 125,  92, 112,   4,  40, 111,  67,  55,  27, 117,  89,  45,   1,  70, 106,  30,  50,  19,  63,  75, 103,  32,  12, 120,  84,  39,  11, 127,  83,  20,  56,  76,  96,  65, 109,  25,  53, 114,  94,  42,   6, 104,  68,  48,  28,  91, 119,   3,  47,  14,  34,  86, 122,  61,  17, 101,  73,
	0,  45,  90, 119,  55,  26, 109,  64, 110,  67,  52,  25,  89, 116,   3,  46,  95, 114,   5,  40, 104,  69,  50,  31,  49,  28, 107,  70,   6,  43,  92, 113,  61,  16, 103,  74,  10,  39,  80, 125,  83, 126,   9,  36, 100,  73,  62,  19,  98,  79,  56,  21,  85, 120,  15,  34,  12,  33,  86, 123,  59,  22,  97,  76, 122,  87,  32,  13,  77,  96,  23,  58,  20,  57,  78,  99,  35,  14, 121,  84,  37,   8, 127,  82,  18,  63,  72, 101,  75, 102,  17,  60, 124,  81,  38,  11,  71, 106,  29,  48, 112,  93,  42,   7,  41,   4, 115,  94,  30,  51,  68, 105,  24,  53,  66, 111,  47,   2, 117,  88, 118,  91,  44,   1,  65, 108,  27,  54,
	0,  46,  92, 114,  59,  21, 103,  73, 118,  88,  42,   4,  77,  99,  17,  63, 111,  65,  51,  29,  84, 122,   8,  38,  25,  55,  69, 107,  34,  12, 126,  80,  93, 115,   1,  47, 102,  72,  58,  20,  43,   5, 119,  89,  16,  62,  76,  98,  50,  28, 110,  64,   9,  39,  85, 123,  68, 106,  24,  54, 127,  81,  35,  13,  57,  23, 101,  75,   2,  44,  94, 112,  79,  97,  19,  61, 116,  90,  40,   6,  86, 120,  10,  36, 109,  67,  49,  31,  32,  14, 124,  82,  27,  53,  71, 105, 100,  74,  56,  22,  95, 113,   3,  45,  18,  60,  78,  96,  41,   7, 117,  91,  11,  37,  87, 121,  48,  30, 108,  66, 125,  83,  33,  15,  70, 104,  26,  52,
	0,  47,  94, 113,  63,  16,  97,  78, 126,  81,  32,  15,  65, 110,  31,  48, 127,  80,  33,  14,  64, 111,  30,  49,   1,  46,  95, 112,  62,  17,  96,  79, 125,  82,  35,  12,  66, 109,  28,  51,   3,  44,  93, 114,  60,  19,  98,  77,   2,  45,  92, 115,  61,  18,  99,  76, 124,  83,  34,  13,  67, 108,  29,  50, 121,  86,  39,   8,  70, 105,  24,  55,   7,  40,  89, 118,  56,  23, 102,  73,   6,  41,  88, 119,  57,  22, 103,  72, 120,  87,  38,   9,  71, 104,  25,  54,   4,  43,  90, 117,  59,  20, 101,  74, 122,  85,  36,  11,  69, 106,  27,  52, 123,  84,  37,  10,  68, 107,  26,  53,   5,  42,  91, 116,  58,  21, 100,  75,
	0,  48,  96,  80,  67, 115,  35,  19,   5,  53, 101,  85,  70, 118,  38,  22,  10,  58, 106,  90,  73, 121,  41,  25,  15,  63, 111,  95,  76, 124,  44,  28,  20,  36, 116,  68,  87, 103,  55,   7,  17,  33, 113,  65,  82,  98,  50,   2,  30,  46, 126,  78,  93, 109,  61,  13,  27,  43, 123,  75,  88, 104,  56,   8,  40,  24,  72, 120, 107,  91,  11,  59,  45,  29,  77, 125, 110,  94,  14,  62,  34,  18,  66, 114,  97,  81,   1,  49,  39,  23,  71, 119, 100,  84,   4,  52,  60,  12,  92, 108, 127,  79,  31,  47,  57,   9,  89, 105, 122,  74,  26,  42,  54,   6,  86, 102, 117,  69,  21,  37,  51,   3,  83,  99, 112,  64,  16,  32,
	0,  49,  98,  83,  71, 118,  37,  20,  13,  60, 111,  94,  74, 123,  40,  25,  26,  43, 120,  73,  93, 108,  63,  14,  23,  38, 117,  68,  80,  97,  50,   3,  52,   5,  86, 103, 115,  66,  17,  32,  57,   8,  91, 106, 126,  79,  28,  45,  46,  31,  76, 125, 105,  88,  11,  58,  35,  18,  65, 112, 100,  85,   6,  55, 104,  89,  10,  59,  47,  30,  77, 124, 101,  84,   7,  54,  34,  19,  64, 113, 114,  67,  16,  33,  53,   4,  87, 102, 127,  78,  29,  44,  56,   9,  90, 107,  92, 109,  62,  15,  27,  42, 121,  72,  81,  96,  51,   2,  22,  39, 116,  69,  70, 119,  36,  21,   1,  48,  99,  82,  75, 122,  41,  24,  12,  61, 110,  95,
	0,  50, 100,  86,  75, 121,  47,  29,  21,  39, 113,  67,  94, 108,  58,   8,  42,  24,  78, 124,  97,  83,   5,  55,  63,  13,  91, 105, 116,  70,  16,  34,  84, 102,  48,   2,  31,  45, 123,  73,  65, 115,  37,  23,  10,  56, 110,  92, 126,  76,  26,  40,  53,   7,  81,  99, 107,  89,  15,  61,  32,  18,  68, 118,  43,  25,  79, 125,  96,  82,   4,  54,  62,  12,  90, 104, 117,  71,  17,  35,   1,  51, 101,  87,  74, 120,  46,  28,  20,  38, 112,  66,  95, 109,  59,   9, 127,  77,  27,  41,  52,   6,  80,  98, 106,  88,  14,  60,  33,  19,  69, 119,  85, 103,  49,   3,  30,  44, 122,  72,  64, 114,  36,  22,  11,  57, 111,  93,
	0,  51, 102,  85,  79, 124,  41,  26,  29,  46, 123,  72,  82,  97,  52,   7,  58,   9,  92, 111, 117,  70,  19,  32,  39,  20,  65, 114, 104,  91,  14,  61, 116,  71,  18,  33,  59,   8,  93, 110, 105,  90,  15,  60,  38,  21,  64, 115,  78, 125,  40,  27,   1,  50, 103,  84,  83,  96,  53,   6,  28,  47, 122,  73, 107,  88,  13,  62,  36,  23,  66, 113, 118,  69,  16,  35,  57,  10,  95, 108,  81,  98,  55,   4,  30,  45, 120,  75,  76, 127,  42,  25,   3,  48, 101,  86,  31,  44, 121,  74,  80,  99,  54,   5,   2,  49, 100,  87,  77, 126,  43,  24,  37,  22,  67, 112, 106,  89,  12,  63,  56,  11,  94, 109, 119,  68,  17,  34,
	0,  52, 104,  92,  83, 103,  59,  15,  37,  17,  77, 121, 118,  66,  30,  42,  74, 126,  34,  22,  25,  45, 113,  69, 111,  91,   7,  51,  60,   8,  84,  96,  23,  35, 127,  75,  68, 112,  44,  24,  50,   6,  90, 110,  97,  85,   9,  61,  93, 105,  53,   1,  14,  58, 102,  82, 120,  76,  16,  36,  43,  31,  67, 119,  46,  26,  70, 114, 125,  73,  21,  33,  11,  63,  99,  87,  88, 108,  48,   4, 100,  80,  12,  56,  55,   3,  95, 107,  65, 117,  41,  29,  18,  38, 122,  78,  57,  13,  81, 101, 106,  94,   2,  54,  28,  40, 116,  64,  79, 123,  39,  19, 115,  71,  27,  47,  32,  20,  72, 124,  86,  98,  62,  10,   5,  49, 109,  89,
	0,  53, 106,  95,  87,  98,  61,   8,  45,  24,  71, 114, 122,  79,  16,  37,  90, 111,  48,   5,  13,  56, 103,  82, 119,  66,  29,  40,  32,  21,  74, 127,  55,   2,  93, 104,  96,  85,  10,  63,  26,  47, 112,  69,  77, 120,  39,  18, 109,  88,   7,  50,  58,  15,  80, 101,  64, 117,  42,  31,  23,  34, 125,  72, 110,  91,   4,  49,  57,  12,  83, 102,  67, 118,  41,  28,  20,  33, 126,  75,  52,   1,  94, 107,  99,  86,   9,  60,  25,  44, 115,  70,  78, 123,  36,  17,  89, 108,  51,   6,  14,  59, 100,  81, 116,  65,  30,  43,  35,  22,  73, 124,   3,  54, 105,  92,  84,  97,  62,  11,  46,  27,  68, 113, 121,  76,  19,  38,
	0,  54, 108,  90,  91, 109,  55,   1,  53,   3,  89, 111, 110,  88,   2,  52, 106,  92,   6,  48,  49,   7,  93, 107,  95, 105,  51,   5,   4,  50, 104,  94,  87,  97,  59,  13,  12,  58,  96,  86,  98,  84,  14,  56,  57,  15,  85,  99,  61,  11,  81, 103, 102,  80,  10,  60,   8,  62, 100,  82,  83, 101,  63,   9,  45,  27,  65, 119, 118,  64,  26,  44,  24,  46, 116,  66,  67, 117,  47,  25,  71, 113,  43,  29,  28,  42, 112,  70, 114,  68,  30,  40,  41,  31,  69, 115, 122,  76,  22,  32,  33,  23,  77, 123,  79, 121,  35,  21,  20,  34, 120,  78,  16,  38, 124,  74,  75, 125,  39,  17,  37,  19,  73, 127, 126,  72,  18,  36,
	0,  55, 110,  89,  95, 104,  49,   6,  61,  10,  83, 100,  98,  85,  12,  59, 122,  77,  20,  35,  37,  18,  75, 124,  71, 112,  41,  30,  24,  47, 118,  65, 119,  64,  25,  46,  40,  31,  70, 113,  74, 125,  36,  19,  21,  34, 123,  76,  13,  58,  99,  84,  82, 101,  60,  11,  48,   7,  94, 105, 111,  88,   1,  54, 109,  90,   3,  52,  50,   5,  92, 107,  80, 103,  62,   9,  15,  56,  97,  86,  23,  32, 121,  78,  72, 127,  38,  17,  42,  29,  68, 115, 117,  66,  27,  44,  26,  45, 116,  67,  69, 114,  43,  28,  39,  16,  73, 126, 120,  79,  22,  33,  96,  87,  14,  57,  63,   8,  81, 102,  93, 106,  51,   4,   2,  53, 108,  91,
	0,  56, 112,  72,  99,  91,  19,  43,  69, 125,  53,  13,  38,  30,  86, 110,   9,  49, 121,  65, 106,  82,  26,  34,  76, 116,  60,   4,  47,  23,  95, 103,  18,  42,  98,  90, 113,  73,   1,  57,  87, 111,  39,  31,  52,  12,  68, 124,  27,  35, 107,  83, 120,  64,   8,  48,  94, 102,  46,  22,  61,   5,  77, 117,  36,  28,  84, 108,  71, 127,  55,  15,  97,  89,  17,  41,   2,  58, 114,  74,  45,  21,  93, 101,  78, 118,  62,   6, 104,  80,  24,  32,  11,  51, 123,  67,  54,  14,  70, 126,  85, 109,  37,  29, 115,  75,   3,  59,  16,  40,  96,  88,  63,   7,  79, 119,  92, 100,  44,  20, 122,  66,  10,  50,  25,  33, 105,  81,
	0,  57, 114,  75, 103,  94,  21,  44,  77, 116,  63,   6,  42,  19,  88,  97,  25,  32, 107,  82, 126,  71,  12,  53,  84, 109,  38,  31,  51,  10,  65, 120,  50,  11,  64, 121,  85, 108,  39,  30, 127,  70,  13,  52,  24,  33, 106,  83,  43,  18,  89,  96,  76, 117,  62,   7, 102,  95,  20,  45,   1,  56, 115,  74, 100,  93,  22,  47,   3,  58, 113,  72,  41,  16,  91,  98,  78, 119,  60,   5, 125,  68,  15,  54,  26,  35, 104,  81,  48,   9,  66, 123,  87, 110,  37,  28,  86, 111,  36,  29,  49,   8,  67, 122,  27,  34, 105,  80, 124,  69,  14,  55,  79, 118,  61,   4,  40,  17,  90,  99,   2,  59, 112,  73, 101,  92,  23,  46,
	0,  58, 116,  78, 107,  81,  31,  37,  85, 111,  33,  27,  62,   4,  74, 112,  41,  19,  93, 103,  66, 120,  54,  12, 124,  70,   8,  50,  23,  45,  99,  89,  82, 104,  38,  28,  57,   3,  77, 119,   7,  61, 115,  73, 108,  86,  24,  34, 123,  65,  15,  53,  16,  42, 100,  94,  46,  20,  90,  96,  69, 127,  49,  11,  39,  29,  83, 105,  76, 118,  56,   2, 114,  72,   6,  60,  25,  35, 109,  87,  14,  52, 122,  64, 101,  95,  17,  43,  91,  97,  47,  21,  48,  10,  68, 126, 117,  79,   1,  59,  30,  36, 106,  80,  32,  26,  84, 110,  75, 113,  63,   5,  92, 102,  40,  18,  55,  13,  67, 121,   9,  51, 125,  71,  98,  88,  22,  44,
	0,  59, 118,  77, 111,  84,  25,  34,  93, 102,  43,  16,  50,   9,  68, 127,  57,   2,  79, 116,  86, 109,  32,  27, 100,  95,  18,  41,  11,  48, 125,  70, 114,  73,   4,  63,  29,  38, 107,  80,  47,  20,  89,  98,  64, 123,  54,  13,  75, 112,  61,   6,  36,  31,  82, 105,  22,  45,  96,  91, 121,  66,  15,  52, 103,  92,  17,  42,   8,  51, 126,  69,  58,   1,  76, 119,  85, 110,  35,  24,  94, 101,  40,  19,  49,  10,  71, 124,   3,  56, 117,  78, 108,  87,  26,  33,  21,  46,  99,  88, 122,  65,  12,  55,  72, 115,  62,   5,  39,  28,  81, 106,  44,  23,  90,  97,  67, 120,  53,  14, 113,  74,   7,  60,  30,  37, 104,  83,
	0,  60, 120,  68, 115,  79,  11,  55, 101,  89,  29,  33,  22,  42, 110,  82,  73, 117,  49,  13,  58,   6,  66, 126,  44,  16,  84, 104,  95,  99,  39,  27,  17,  45, 105,  85,  98,  94,  26,  38, 116,  72,  12,  48,   7,  59, 127,  67,  88, 100,  32,  28,  43,  23,  83, 111,  61,   1,  69, 121,  78, 114,  54,  10,  34,  30,  90, 102,  81, 109,  41,  21,  71, 123,  63,   3,  52,   8,  76, 112, 107,  87,  19,  47,  24,  36,  96,  92,  14,  50, 118,  74, 125,  65,   5,  57,  51,  15,  75, 119,  64, 124,  56,   4,  86, 106,  46,  18,  37,  25,  93,  97, 122,  70,   2,  62,   9,  53, 113,  77,  31,  35, 103,  91, 108,  80,  20,  40,
	0,  61, 122,  71, 119,  74,  13,  48, 109,  80,  23,  42,  26,  39,  96,  93,  89, 100,  35,  30,  46,  19,  84, 105,  52,   9,  78, 115,  67, 126,  57,   4,  49,  12,  75, 118,  70, 123,  60,   1,  92,  97,  38,  27,  43,  22,  81, 108, 104,  85,  18,  47,  31,  34, 101,  88,   5,  56, 127,  66, 114,  79,   8,  53,  98,  95,  24,  37,  21,  40, 111,  82,  15,  50, 117,  72, 120,  69,   2,  63,  59,   6,  65, 124,  76, 113,  54,  11,  86, 107,  44,  17,  33,  28,  91, 102,  83, 110,  41,  20,  36,  25,  94,  99,  62,   3,  68, 121,  73, 116,  51,  14,  10,  55, 112,  77, 125,  64,   7,  58, 103,  90,  29,  32,  16,  45, 106,  87,
	0,  62, 124,  66, 123,  69,   7,  57, 117,  75,   9,  55,  14,  48, 114,  76, 105,  87,  21,  43,  18,  44, 110,  80,  28,  34,  96,  94, 103,  89,  27,  37,  81, 111,  45,  19,  42,  20,  86, 104,  36,  26,  88, 102,  95,  97,  35,  29,  56,   6,  68, 122,  67, 125,  63,   1,  77, 115,  49,  15,  54,   8,  74, 116,  33,  31,  93,  99,  90, 100,  38,  24,  84, 106,  40,  22,  47,  17,  83, 109,  72, 118,  52,  10,  51,  13,  79, 113,  61,   3,  65, 127,  70, 120,  58,   4, 112,  78,  12,  50,  11,  53, 119,  73,   5,  59, 121,  71, 126,  64,   2,  60,  25,  39, 101,  91,  98,  92,  30,  32, 108,  82,  16,  46,  23,  41, 107,  85,
	0,  63, 126,  65, 127,  64,   1,  62, 125,  66,   3,  60,   2,  61, 124,  67, 121,  70,   7,  56,   6,  57, 120,  71,   4,  59, 122,  69, 123,  68,   5,  58, 113,  78,  15,  48,  14,  49, 112,  79,  12,  51, 114,  77, 115,  76,  13,  50,   8,  55, 118,  73, 119,  72,   9,  54, 117,  74,  11,  52,  10,  53, 116,  75,  97,  94,  31,  32,  30,  33,  96,  95,  28,  35,  98,  93,  99,  92,  29,  34,  24,  39, 102,  89, 103,  88,  25,  38, 101,  90,  27,  36,  26,  37, 100,  91,  16,  47, 110,  81, 111,  80,  17,  46, 109,  82,  19,  44,  18,  45, 108,  83, 105,  86,  23,  40,  22,  41, 104,  87,  20,  43, 106,  85, 107,  84,  21,  42,
	0,  64,   3,  67,   6,  70,   5,  69,  12,  76,  15,  79,  10,  74,   9,  73,  24,  88,  27,  91,  30,  94,  29,  93,  20,  84,  23,  87,  18,  82,  17,  81,  48, 112,  51, 115,  54, 118,  53, 117,  60, 124,  63, 127,  58, 122,  57, 121,  40, 104,  43, 107,  46, 110,  45, 109,  36, 100,  39, 103,  34,  98,  33,  97,  96,  32,  99,  35, 102,  38, 101,  37, 108,  44, 111,  47, 106,  42, 105,  41, 120,  56, 123,  59, 126,  62, 125,  61, 116,  52, 119,  55, 114,  50, 113,  49,  80,  16,  83,  19,  86,  22,  85,  21,  92,  28,  95,  31,  90,  26,  89,  25,  72,   8,  75,  11,  78,  14,  77,  13,  68,   4,  71,   7,  66,   2,  65,   1,
	0,  65,   1,  64,   2,  67,   3,  66,   4,  69,   5,  68,   6,  71,   7,  70,   8,  73,   9,  72,  10,  75,  11,  74,  12,  77,  13,  76,  14,  79,  15,  78,  16,  81,  17,  80,  18,  83,  19,  82,  20,  85,  21,  84,  22,  87,  23,  86,  24,  89,  25,  88,  26,  91,  27,  90,  28,  93,  29,  92,  30,  95,  31,  94,  32,  97,  33,  96,  34,  99,  35,  98,  36, 101,  37, 100,  38, 103,  39, 102,  40, 105,  41, 104,  42, 107,  43, 106,  44, 109,  45, 108,  46, 111,  47, 110,  48, 113,  49, 112,  50, 115,  51, 114,  52, 117,  53, 116,  54, 119,  55, 118,  56, 121,  57, 120,  58, 123,  59, 122,  60, 125,  61, 124,  62, 127,  63, 126,
	0,  66,   7,  69,  14,  76,   9,  75,  28,  94,  27,  89,  18,  80,  21,  87,  56, 122,  63, 125,  54, 116,  49, 115,  36, 102,  35,  97,  42, 104,  45, 111, 112,  50, 119,  53, 126,  60, 121,  59, 108,  46, 107,  41,  98,  32, 101,  39,  72,  10,  79,  13,  70,   4,  65,   3,  84,  22,  83,  17,  90,  24,  93,  31,  99,  33, 100,  38, 109,  47, 106,  40, 127,  61, 120,  58, 113,  51, 118,  52,  91,  25,  92,  30,  85,  23,  82,  16,  71,   5,  64,   2,  73,  11,  78,  12,  19,  81,  20,  86,  29,  95,  26,  88,  15,  77,   8,  74,   1,  67,   6,  68,  43, 105,  44, 110,  37, 103,  34,  96,  55, 117,  48, 114,  57, 123,  62, 124,
	0,  67,   5,  70,  10,  73,  15,  76,  20,  87,  17,  82,  30,  93,  27,  88,  40, 107,  45, 110,  34,  97,  39, 100,  60, 127,  57, 122,  54, 117,  51, 112,  80,  19,  85,  22,  90,  25,  95,  28,  68,   7,  65,   2,  78,  13,  75,   8, 120,  59, 125,  62, 114,  49, 119,  52, 108,  47, 105,  42, 102,  37,  99,  32,  35,  96,  38, 101,  41, 106,  44, 111,  55, 116,  50, 113,  61, 126,  56, 123,  11,  72,  14,  77,   1,  66,   4,  71,  31,  92,  26,  89,  21,  86,  16,  83, 115,  48, 118,  53, 121,  58, 124,  63, 103,  36,  98,  33, 109,  46, 104,  43,  91,  24,  94,  29,  81,  18,  84,  23,  79,  12,  74,   9,  69,   6,  64,   3,
	0,  68,  11,  79,  22,  82,  29,  89,  44, 104,  39,  99,  58, 126,  49, 117,  88,  28,  83,  23,  78,  10,  69,   1, 116,  48, 127,  59,  98,  38, 105,  45,  51, 119,  56, 124,  37,  97,  46, 106,  31,  91,  20,  80,   9,  77,   2,  70, 107,  47,  96,  36, 125,  57, 118,  50,  71,   3,  76,   8,  81,  21,  90,  30, 102,  34, 109,  41, 112,  52, 123,  63,  74,  14,  65,   5,  92,  24,  87,  19,  62, 122,  53, 113,  40, 108,  35, 103,  18,  86,  25,  93,   4,  64,  15,  75,  85,  17,  94,  26,  67,   7,  72,  12, 121,  61, 114,  54, 111,  43, 100,  32,  13,  73,   6,  66,  27,  95,  16,  84,  33, 101,  42, 110,  55, 115,  60, 120,
	0,  69,   9,  76,  18,  87,  27,  94,  36,  97,  45, 104,  54, 115,  63, 122,  72,  13,  65,   4,  90,  31,  83,  22, 108,  41, 101,  32, 126,  59, 119,  50,  19,  86,  26,  95,   1,  68,   8,  77,  55, 114,  62, 123,  37,  96,  44, 105,  91,  30,  82,  23,  73,  12,  64,   5, 127,  58, 118,  51, 109,  40, 100,  33,  38,  99,  47, 106,  52, 113,  61, 120,   2,  71,  11,  78,  16,  85,  25,  92, 110,  43, 103,  34, 124,  57, 117,  48,  74,  15,  67,   6,  88,  29,  81,  20,  53, 112,  60, 121,  39,  98,  46, 107,  17,  84,  24,  93,   3,  70,  10,  79, 125,  56, 116,  49, 111,  42, 102,  35,  89,  28,  80,  21,  75,  14,  66,   7,
	0,  70,  15,  73,  30,  88,  17,  87,  60, 122,  51, 117,  34, 100,  45, 107, 120,  62, 119,  49, 102,  32, 105,  47,  68,   2,  75,  13,  90,  28,  85,  19, 115,  53, 124,  58, 109,  43,  98,  36,  79,   9,  64,   6,  81,  23,  94,  24,  11,  77,   4,  66,  21,  83,  26,  92,  55, 113,  56, 126,  41, 111,  38,  96, 101,  35, 106,  44, 123,  61, 116,  50,  89,  31,  86,  16,  71,   1,  72,  14,  29,  91,  18,  84,   3,  69,  12,  74,  33, 103,  46, 104,  63, 121,  48, 118,  22,  80,  25,  95,   8,  78,   7,  65,  42, 108,  37,  99,  52, 114,  59, 125, 110,  40,  97,  39, 112,  54, 127,  57,  82,  20,  93,  27,  76,  10,  67,   5,
	0,  71,  13,  74,  26,  93,  23,  80,  52, 115,  57, 126,  46, 105,  35, 100, 104,  47, 101,  34, 114,  53, 127,  56,  92,  27,  81,  22,  70,   1,  75,  12,  83,  20,  94,  25,  73,  14,  68,   3, 103,  32, 106,  45, 125,  58, 112,  55,  59, 124,  54, 113,  33, 102,  44, 107,  15,  72,   2,  69,  21,  82,  24,  95,  37,  98,  40, 111,  63, 120,  50, 117,  17,  86,  28,  91,  11,  76,   6,  65,  77,  10,  64,   7,  87,  16,  90,  29, 121,  62, 116,  51,  99,  36, 110,  41, 118,  49, 123,  60, 108,  43,  97,  38,  66,   5,  79,   8,  88,  31,  85,  18,  30,  89,  19,  84,   4,  67,   9,  78,  42, 109,  39,  96,  48, 119,  61, 122,
	0,  72,  19,  91,  38, 110,  53, 125,  76,   4,  95,  23, 106,  34, 121,  49,  27,  83,   8,  64,  61, 117,  46, 102,  87,  31,  68,  12, 113,  57,  98,  42,  54, 126,  37, 109,  16,  88,   3,  75, 122,  50, 105,  33,  92,  20,  79,   7,  45, 101,  62, 118,  11,  67,  24,  80,  97,  41, 114,  58,  71,  15,  84,  28, 108,  36, 127,  55,  74,   2,  89,  17,  32, 104,  51, 123,   6,  78,  21,  93, 119,  63, 100,  44,  81,  25,  66,  10,  59, 115,  40,  96,  29,  85,  14,  70,  90,  18,  73,   1, 124,  52, 111,  39,  22,  94,   5,  77,  48, 120,  35, 107,  65,   9,  82,  26, 103,  47, 116,  60,  13,  69,  30,  86,  43,  99,  56, 112,
	0,  73,  17,  88,  34, 107,  51, 122,  68,  13,  85,  28, 102,  47, 119,  62,  11,  66,  26,  83,  41,  96,  56, 113,  79,   6,  94,  23, 109,  36, 124,  53,  22,  95,   7,  78,  52, 125,  37, 108,  82,  27,  67,  10, 112,  57,  97,  40,  29,  84,  12,  69,  63, 118,  46, 103,  89,  16,  72,   1, 123,  50, 106,  35,  44, 101,  61, 116,  14,  71,  31,  86, 104,  33, 121,  48,  74,   3,  91,  18,  39, 110,  54, 127,   5,  76,  20,  93,  99,  42, 114,  59,  65,   8,  80,  25,  58, 115,  43,  98,  24,  81,   9,  64, 126,  55, 111,  38,  92,  21,  77,   4,  49, 120,  32, 105,  19,  90,   2,  75, 117,  60, 100,  45,  87,  30,  70,  15,
	0,  74,  23,  93,  46, 100,  57, 115,  92,  22,  75,   1, 114,  56, 101,  47,  59, 113,  44, 102,  21,  95,   2,  72, 103,  45, 112,  58,  73,   3,  94,  20, 118,  60,  97,  43,  88,  18,  79,   5,  42,  96,  61, 119,   4,  78,  19,  89,  77,   7,  90,  16,  99,  41, 116,  62,  17,  91,   6,  76,  63, 117,  40,  98, 111,  37, 120,  50,  65,  11,  86,  28,  51, 121,  36, 110,  29,  87,  10,  64,  84,  30,  67,   9, 122,  48, 109,  39,   8,  66,  31,  85,  38, 108,  49, 123,  25,  83,  14,  68,  55, 125,  32, 106,  69,  15,  82,  24, 107,  33, 124,  54,  34, 104,  53, 127,  12,  70,  27,  81, 126,  52, 105,  35,  80,  26,  71,  13,
	0,  75,  21,  94,  42,  97,  63, 116,  84,  31,  65,  10, 126,  53, 107,  32,  43,  96,  62, 117,   1,  74,  20,  95, 127,  52, 106,  33,  85,  30,  64,  11,  86,  29,  67,   8, 124,  55, 105,  34,   2,  73,  23,  92,  40,  99,  61, 118, 125,  54, 104,  35,  87,  28,  66,   9,  41,  98,  60, 119,   3,  72,  22,  93,  47, 100,  58, 113,   5,  78,  16,  91, 123,  48, 110,  37,  81,  26,  68,  15,   4,  79,  17,  90,  46, 101,  59, 112,  80,  27,  69,  14, 122,  49, 111,  36, 121,  50, 108,  39,  83,  24,  70,  13,  45, 102,  56, 115,   7,  76,  18,  89,  82,  25,  71,  12, 120,  51, 109,  38,   6,  77,  19,  88,  44, 103,  57, 114,
	0,  76,  27,  87,  54, 122,  45,  97, 108,  32, 119,  59,  90,  22,  65,  13,  91,  23,  64,  12, 109,  33, 118,  58,  55, 123,  44,  96,   1,  77,  26,  86,  53, 121,  46,  98,   3,  79,  24,  84,  89,  21,  66,  14, 111,  35, 116,  56, 110,  34, 117,  57,  88,  20,  67,  15,   2,  78,  25,  85,  52, 120,  47,  99, 106,  38, 113,  61,  92,  16,  71,  11,   6,  74,  29,  81,  48, 124,  43, 103,  49, 125,  42, 102,   7,  75,  28,  80,  93,  17,  70,  10, 107,  39, 112,  60,  95,  19,  68,   8, 105,  37, 114,  62,  51, 127,  40, 100,   5,  73,  30,  82,   4,  72,  31,  83,  50, 126,  41, 101, 104,  36, 115,  63,  94,  18,  69,   9,
	0,  77,  25,  84,  50, 127,  43, 102, 100,  41, 125,  48,  86,  27,  79,   2,  75,   6,  82,  31, 121,  52,  96,  45,  47,  98,  54, 123,  29,  80,   4,  73,  21,  88,  12,  65,  39, 106,  62, 115, 113,  60, 104,  37,  67,  14,  90,  23,  94,  19,  71,  10, 108,  33, 117,  56,  58, 119,  35, 110,   8,  69,  17,  92,  42, 103,  51, 126,  24,  85,   1,  76,  78,   3,  87,  26, 124,  49, 101,  40,  97,  44, 120,  53,  83,  30,  74,   7,   5,  72,  28,  81,  55, 122,  46,  99,  63, 114,  38, 107,  13,  64,  20,  89,  91,  22,  66,  15, 105,  36, 112,  61, 116,  57, 109,  32,  70,  11,  95,  18,  16,  93,   9,  68,  34, 111,  59, 118,
	0,  78,  31,  81,  62, 112,  33, 111, 124,  50,  99,  45,  66,  12,  93,  19, 123,  53, 100,  42,  69,  11,  90,  20,   7,  73,  24,  86,  57, 119,  38, 104, 117,  59, 106,  36,  75,   5,  84,  26,   9,  71,  22,  88,  55, 121,  40, 102,  14,  64,  17,  95,  48, 126,  47,  97, 114,  60, 109,  35,  76,   2,  83,  29, 105,  39, 118,  56,  87,  25,  72,   6,  21,  91,  10,  68,  43, 101,  52, 122,  18,  92,  13,  67,  44,  98,  51, 125, 110,  32, 113,  63,  80,  30,  79,   1,  28,  82,   3,  77,  34, 108,  61, 115,  96,  46, 127,  49,  94,  16,  65,  15, 103,  41, 120,  54,  89,  23,  70,   8,  27,  85,   4,  74,  37, 107,  58, 116,
	0,  79,  29,  82,  58, 117,  39, 104, 116,  59, 105,  38,  78,   1,  83,  28, 107,  36, 118,  57,  81,  30,  76,   3,  31,  80,   2,  77,  37, 106,  56, 119,  85,  26,  72,   7, 111,  32, 114,  61,  33, 110,  60, 115,  27,  84,   6,  73,  62, 113,  35, 108,   4,  75,  25,  86,  74,   5,  87,  24, 112,  63, 109,  34,  41, 102,  52, 123,  19,  92,  14,  65,  93,  18,  64,  15, 103,  40, 122,  53,  66,  13,  95,  16, 120,  55, 101,  42,  54, 121,  43, 100,  12,  67,  17,  94, 124,  51,  97,  46,  70,   9,  91,  20,   8,  71,  21,  90,  50, 125,  47,  96,  23,  88,  10,  69,  45,  98,  48, 127,  99,  44, 126,  49,  89,  22,  68,  11,
	0,  80,  35, 115,  70,  22, 101,  53,  15,  95,  44, 124,  73,  25, 106,  58,  30,  78,  61, 109,  88,   8, 123,  43,  17,  65,  50,  98,  87,   7, 116,  36,  60, 108,  31,  79, 122,  42,  89,   9,  51,  99,  16,  64, 117,  37,  86,   6,  34, 114,   1,  81, 100,  52,  71,  23,  45, 125,  14,  94, 107,  59,  72,  24, 120,  40,  91,  11,  62, 110,  29,  77, 119,  39,  84,   4,  49,  97,  18,  66, 102,  54,  69,  21,  32, 112,   3,  83, 105,  57,  74,  26,  47, 127,  12,  92,  68,  20, 103,  55,   2,  82,  33, 113,  75,  27, 104,  56,  13,  93,  46, 126,  90,  10, 121,  41,  28,  76,  63, 111,  85,   5, 118,  38,  19,  67,  48,  96,
	0,  81,  33, 112,  66,  19,  99,  50,   7,  86,  38, 119,  69,  20, 100,  53,  14,  95,  47, 126,  76,  29, 109,  60,   9,  88,  40, 121,  75,  26, 106,  59,  28,  77,  61, 108,  94,  15, 127,  46,  27,  74,  58, 107,  89,   8, 120,  41,  18,  67,  51,  98,  80,   1, 113,  32,  21,  68,  52, 101,  87,   6, 118,  39,  56, 105,  25,  72, 122,  43,  91,  10,  63, 110,  30,  79, 125,  44,  92,  13,  54, 103,  23,  70, 116,  37,  85,   4,  49,  96,  16,  65, 115,  34,  82,   3,  36, 117,   5,  84, 102,  55,  71,  22,  35, 114,   2,  83,  97,  48,  64,  17,  42, 123,  11,  90, 104,  57,  73,  24,  45, 124,  12,  93, 111,  62,  78,  31,
	0,  82,  39, 117,  78,  28, 105,  59,  31,  77,  56, 106,  81,   3, 118,  36,  62, 108,  25,  75, 112,  34,  87,   5,  33, 115,   6,  84, 111,  61,  72,  26, 124,  46,  91,   9,  50,  96,  21,  71,  99,  49,  68,  22,  45, 127,  10,  88,  66,  16, 101,  55,  12,  94,  43, 121,  93,  15, 122,  40,  19,  65,  52, 102, 123,  41,  92,  14,  53, 103,  18,  64, 100,  54,  67,  17,  42, 120,  13,  95,  69,  23,  98,  48,  11,  89,  44, 126,  90,   8, 125,  47,  20,  70,  51,  97,   7,  85,  32, 114,  73,  27, 110,  60,  24,  74,  63, 109,  86,   4, 113,  35,  57, 107,  30,  76, 119,  37,  80,   2,  38, 116,   1,  83, 104,  58,  79,  29,
	0,  83,  37, 118,  74,  25, 111,  60,  23,  68,  50,  97,  93,  14, 120,  43,  46, 125,  11,  88, 100,  55,  65,  18,  57, 106,  28,  79, 115,  32,  86,   5,  92,  15, 121,  42,  22,  69,  51,  96,  75,  24, 110,  61,   1,  82,  36, 119, 114,  33,  87,   4,  56, 107,  29,  78, 101,  54,  64,  19,  47, 124,  10,  89,  59, 104,  30,  77, 113,  34,  84,   7,  44, 127,   9,  90, 102,  53,  67,  16,  21,  70,  48,  99,  95,  12, 122,  41,   2,  81,  39, 116,  72,  27, 109,  62, 103,  52,  66,  17,  45, 126,   8,  91, 112,  35,  85,   6,  58, 105,  31,  76,  73,  26, 108,  63,   3,  80,  38, 117,  94,  13, 123,  40,  20,  71,  49,  98,
	0,  84,  43, 127,  86,   2, 125,  41,  47, 123,   4,  80, 121,  45,  82,   6,  94,  10, 117,  33,   8,  92,  35, 119, 113,  37,  90,  14,  39, 115,  12,  88,  63, 107,  20,  64, 105,  61,  66,  22,  16,  68,  59, 111,  70,  18, 109,  57,  97,  53,  74,  30,  55,  99,  28,  72,  78,  26, 101,  49,  24,  76,  51, 103, 126,  42,  85,   1,  40, 124,   3,  87,  81,   5, 122,  46,   7,  83,  44, 120,  32, 116,  11,  95, 118,  34,  93,   9,  15,  91,  36, 112,  89,  13, 114,  38,  65,  21, 106,  62,  23,  67,  60, 104, 110,  58,  69,  17,  56, 108,  19,  71,  31,  75,  52,  96,  73,  29,  98,  54,  48, 100,  27,  79, 102,  50,  77,  25,
	0,  85,  41, 124,  82,   7, 123,  46,  39, 114,  14,  91, 117,  32,  92,   9,  78,  27, 103,  50,  28,  73,  53,  96, 105,  60,  64,  21,  59, 110,  18,  71,  31,  74,  54,  99,  77,  24, 100,  49,  56, 109,  17,  68, 106,  63,  67,  22,  81,   4, 120,  45,   3,  86,  42, 127, 118,  35,  95,  10,  36, 113,  13,  88,  62, 107,  23,  66, 108,  57,  69,  16,  25,  76,  48, 101,  75,  30,  98,  55, 112,  37,  89,  12,  34, 119,  11,  94,  87,   2, 126,  43,   5,  80,  44, 121,  33, 116,   8,  93, 115,  38,  90,  15,   6,  83,  47, 122,  84,   1, 125,  40, 111,  58,  70,  19,  61, 104,  20,  65,  72,  29,  97,  52,  26,  79,  51, 102,
	0,  86,  47, 121,  94,   8, 113,  39,  63, 105,  16,  70,  97,  55,  78,  24, 126,  40,  81,   7,  32, 118,  15,  89,  65,  23, 110,  56,  31,  73,  48, 102, 127,  41,  80,   6,  33, 119,  14,  88,  64,  22, 111,  57,  30,  72,  49, 103,   1,  87,  46, 120,  95,   9, 112,  38,  62, 104,  17,  71,  96,  54,  79,  25, 125,  43,  82,   4,  35, 117,  12,  90,  66,  20, 109,  59,  28,  74,  51, 101,   3,  85,  44, 122,  93,  11, 114,  36,  60, 106,  19,  69,  98,  52,  77,  27,   2,  84,  45, 123,  92,  10, 115,  37,  61, 107,  18,  68,  99,  53,  76,  26, 124,  42,  83,   5,  34, 116,  13,  91,  67,  21, 108,  58,  29,  75,  50, 100,
	0,  87,  45, 122,  90,  13, 119,  32,  55,  96,  26,  77, 109,  58,  64,  23, 110,  57,  67,  20,  52,  99,  25,  78,  89,  14, 116,  35,   3,  84,  46, 121,  95,   8, 114,  37,   5,  82,  40, 127, 104,  63,  69,  18,  50, 101,  31,  72,  49, 102,  28,  75, 107,  60,  70,  17,   6,  81,  43, 124,  92,  11, 113,  38,  61, 106,  16,  71, 103,  48,  74,  29,  10,  93,  39, 112,  80,   7, 125,  42,  83,   4, 126,  41,   9,  94,  36, 115, 100,  51,  73,  30,  62, 105,  19,  68,  98,  53,  79,  24,  56, 111,  21,  66,  85,   2, 120,  47,  15,  88,  34, 117,  12,  91,  33, 118,  86,   1, 123,  44,  59, 108,  22,  65,  97,  54,  76,  27,
	0,  88,  51, 107, 102,  62,  85,  13,  79,  23, 124,  36,  41, 113,  26,  66,  29,  69,  46, 118, 123,  35,  72,  16,  82,  10,  97,  57,  52, 108,   7,  95,  58,  98,   9,  81,  92,   4, 111,  55, 117,  45,  70,  30,  19,  75,  32, 120,  39, 127,  20,  76,  65,  25, 114,  42, 104,  48,  91,   3,  14,  86,  61, 101, 116,  44,  71,  31,  18,  74,  33, 121,  59,  99,   8,  80,  93,   5, 110,  54, 105,  49,  90,   2,  15,  87,  60, 100,  38, 126,  21,  77,  64,  24, 115,  43,  78,  22, 125,  37,  40, 112,  27,  67,   1,  89,  50, 106, 103,  63,  84,  12,  83,  11,  96,  56,  53, 109,   6,  94,  28,  68,  47, 119, 122,  34,  73,  17,
	0,  89,  49, 104,  98,  59,  83,  10,  71,  30, 118,  47,  37, 124,  20,  77,  13,  84,  60, 101, 111,  54,  94,   7,  74,  19, 123,  34,  40, 113,  25,  64,  26,  67,  43, 114, 120,  33,  73,  16,  93,   4, 108,  53,  63, 102,  14,  87,  23,  78,  38, 127, 117,  44,  68,  29,  80,   9,  97,  56,  50, 107,   3,  90,  52, 109,   5,  92,  86,  15, 103,  62, 115,  42,  66,  27,  17,  72,  32, 121,  57,  96,   8,  81,  91,   2, 106,  51, 126,  39,  79,  22,  28,  69,  45, 116,  46, 119,  31,  70,  76,  21, 125,  36, 105,  48,  88,   1,  11,  82,  58,  99,  35, 122,  18,  75,  65,  24, 112,  41, 100,  61,  85,  12,   6,  95,  55, 110,
	0,  90,  55, 109, 110,  52,  89,   3,  95,   5, 104,  50,  49, 107,   6,  92,  61, 103,  10,  80,  83,   9, 100,  62,  98,  56,  85,  15,  12,  86,  59,  97, 122,  32,  77,  23,  20,  78,  35, 121,  37, 127,  18,  72,  75,  17, 124,  38,  71,  29, 112,  42,  41, 115,  30,  68,  24,  66,  47, 117, 118,  44,  65,  27, 119,  45,  64,  26,  25,  67,  46, 116,  40, 114,  31,  69,  70,  28, 113,  43,  74,  16, 125,  39,  36, 126,  19,  73,  21,  79,  34, 120, 123,  33,  76,  22,  13,  87,  58,  96,  99,  57,  84,  14,  82,   8, 101,  63,  60, 102,  11,  81,  48, 106,   7,  93,  94,   4, 105,  51, 111,  53,  88,   2,   1,  91,  54, 108,
	0,  91,  53, 110, 106,  49,  95,   4,  87,  12,  98,  57,  61, 102,   8,  83,  45, 118,  24,  67,  71,  28, 114,  41, 122,  33,  79,  20,  16,  75,  37, 126,  90,   1, 111,  52,  48, 107,   5,  94,  13,  86,  56,  99, 103,  60,  82,   9, 119,  44,  66,  25,  29,  70,  40, 115,  32, 123,  21,  78,  74,  17, 127,  36,  55, 108,   2,  89,  93,   6, 104,  51,  96,  59,  85,  14,  10,  81,  63, 100,  26,  65,  47, 116, 112,  43,  69,  30,  77,  22, 120,  35,  39, 124,  18,  73, 109,  54,  88,   3,   7,  92,  50, 105,  58,  97,  15,  84,  80,  11, 101,  62,  64,  27, 117,  46,  42, 113,  31,  68,  23,  76,  34, 121, 125,  38,  72,  19,
	0,  92,  59, 103, 118,  42,  77,  17, 111,  51,  84,   8,  25,  69,  34, 126,  93,   1, 102,  58,  43, 119,  16,  76,  50, 110,   9,  85,  68,  24, 127,  35,  57, 101,   2,  94,  79,  19, 116,  40,  86,  10, 109,  49,  32, 124,  27,  71, 100,  56,  95,   3,  18,  78,  41, 117,  11,  87,  48, 108, 125,  33,  70,  26, 114,  46,  73,  21,   4,  88,  63,  99,  29,  65,  38, 122, 107,  55,  80,  12,  47, 115,  20,  72,  89,   5,  98,  62,  64,  28, 123,  39,  54, 106,  13,  81,  75,  23, 112,  44,  61,  97,   6,  90,  36, 120,  31,  67,  82,  14, 105,  53,  22,  74,  45, 113,  96,  60,  91,   7, 121,  37,  66,  30,  15,  83,  52, 104,
	0,  93,  57, 100, 114,  47,  75,  22, 103,  58,  94,   3,  21,  72,  44, 113,  77,  16, 116,  41,  63,  98,   6,  91,  42, 119,  19,  78,  88,   5,  97,  60,  25,  68,  32, 125, 107,  54,  82,  15, 126,  35,  71,  26,  12,  81,  53, 104,  84,   9, 109,  48,  38, 123,  31,  66,  51, 110,  10,  87,  65,  28, 120,  37,  50, 111,  11,  86,  64,  29, 121,  36,  85,   8, 108,  49,  39, 122,  30,  67, 127,  34,  70,  27,  13,  80,  52, 105,  24,  69,  33, 124, 106,  55,  83,  14,  43, 118,  18,  79,  89,   4,  96,  61,  76,  17, 117,  40,  62,  99,   7,  90, 102,  59,  95,   2,  20,  73,  45, 112,   1,  92,  56, 101, 115,  46,  74,  23,
	0,  94,  63,  97, 126,  32,  65,  31, 127,  33,  64,  30,   1,  95,  62,  96, 125,  35,  66,  28,   3,  93,  60,  98,   2,  92,  61,  99, 124,  34,  67,  29, 121,  39,  70,  24,   7,  89,  56, 102,   6,  88,  57, 103, 120,  38,  71,  25,   4,  90,  59, 101, 122,  36,  69,  27, 123,  37,  68,  26,   5,  91,  58, 100, 113,  47,  78,  16,  15,  81,  48, 110,  14,  80,  49, 111, 112,  46,  79,  17,  12,  82,  51, 109, 114,  44,  77,  19, 115,  45,  76,  18,  13,  83,  50, 108,   8,  86,  55, 105, 118,  40,  73,  23, 119,  41,  72,  22,   9,  87,  54, 104, 117,  43,  74,  20,  11,  85,  52, 106,  10,  84,  53, 107, 116,  42,  75,  21,
	0,  95,  61,  98, 122,  37,  71,  24, 119,  40,  74,  21,  13,  82,  48, 111, 109,  50,  80,  15,  23,  72,  42, 117,  26,  69,  39, 120,  96,  63,  93,   2,  89,   6, 100,  59,  35, 124,  30,  65,  46, 113,  19,  76,  84,  11, 105,  54,  52, 107,   9,  86,  78,  17, 115,  44,  67,  28, 126,  33,  57, 102,   4,  91,  49, 110,  12,  83,  75,  20, 118,  41,  70,  25, 123,  36,  60,  99,   1,  94,  92,   3,  97,  62,  38, 121,  27,  68,  43, 116,  22,  73,  81,  14, 108,  51, 104,  55,  85,  10,  18,  77,  47, 112,  31,  64,  34, 125, 101,  58,  88,   7,   5,  90,  56, 103, 127,  32,  66,  29, 114,  45,  79,  16,   8,  87,  53, 106,
	0,  96,  67,  35,   5, 101,  70,  38,  10, 106,  73,  41,  15, 111,  76,  44,  20, 116,  87,  55,  17, 113,  82,  50,  30, 126,  93,  61,  27, 123,  88,  56,  40,  72, 107,  11,  45,  77, 110,  14,  34,  66,  97,   1,  39,  71, 100,   4,  60,  92, 127,  31,  57,  89, 122,  26,  54,  86, 117,  21,  51,  83, 112,  16,  80,  48,  19, 115,  85,  53,  22, 118,  90,  58,  25, 121,  95,  63,  28, 124,  68,  36,   7, 103,  65,  33,   2,  98,  78,  46,  13, 109,  75,  43,   8, 104, 120,  24,  59,  91, 125,  29,  62,  94, 114,  18,  49,  81, 119,  23,  52,  84, 108,  12,  47,  79, 105,   9,  42,  74, 102,   6,  37,  69,  99,   3,  32,  64,
	0,  97,  65,  32,   1,  96,  64,  33,   2,  99,  67,  34,   3,  98,  66,  35,   4, 101,  69,  36,   5, 100,  68,  37,   6, 103,  71,  38,   7, 102,  70,  39,   8, 105,  73,  40,   9, 104,  72,  41,  10, 107,  75,  42,  11, 106,  74,  43,  12, 109,  77,  44,  13, 108,  76,  45,  14, 111,  79,  46,  15, 110,  78,  47,  16, 113,  81,  48,  17, 112,  80,  49,  18, 115,  83,  50,  19, 114,  82,  51,  20, 117,  85,  52,  21, 116,  84,  53,  22, 119,  87,  54,  23, 118,  86,  55,  24, 121,  89,  56,  25, 120,  88,  57,  26, 123,  91,  58,  27, 122,  90,  59,  28, 125,  93,  60,  29, 124,  92,  61,  30, 127,  95,  62,  31, 126,  94,  63,
	0,  98,  71,  37,  13, 111,  74,  40,  26, 120,  93,  63,  23, 117,  80,  50,  52,  86, 115,  17,  57,  91, 126,  28,  46,  76, 105,  11,  35,  65, 100,   6, 104,  10,  47,  77, 101,   7,  34,  64, 114,  16,  53,  87, 127,  29,  56,  90,  92,  62,  27, 121,  81,  51,  22, 116,  70,  36,   1,  99,  75,  41,  12, 110,  83,  49,  20, 118,  94,  60,  25, 123,  73,  43,  14, 108,  68,  38,   3,  97, 103,   5,  32,  66, 106,   8,  45,  79, 125,  31,  58,  88, 112,  18,  55,  85,  59,  89, 124,  30,  54,  84, 113,  19,  33,  67, 102,   4,  44,  78, 107,   9,  15, 109,  72,  42,   2,  96,  69,  39,  21, 119,  82,  48,  24, 122,  95,  61,
	0,  99,  69,  38,   9, 106,  76,  47,  18, 113,  87,  52,  27, 120,  94,  61,  36,  71,  97,   2,  45,  78, 104,  11,  54,  85, 115,  16,  63,  92, 122,  25,  72,  43,  13, 110,  65,  34,   4, 103,  90,  57,  31, 124,  83,  48,  22, 117, 108,  15,  41,  74, 101,   6,  32,  67, 126,  29,  59,  88, 119,  20,  50,  81,  19, 112,  86,  53,  26, 121,  95,  60,   1,  98,  68,  39,   8, 107,  77,  46,  55,  84, 114,  17,  62,  93, 123,  24,  37,  70,  96,   3,  44,  79, 105,  10,  91,  56,  30, 125,  82,  49,  23, 116,  73,  42,  12, 111,  64,  35,   5, 102, 127,  28,  58,  89, 118,  21,  51,  80, 109,  14,  40,  75, 100,   7,  33,  66,
	0, 100,  75,  47,  21, 113,  94,  58,  42,  78,  97,   5,  63,  91, 116,  16,  84,  48,  31, 123,  65,  37,  10, 110, 126,  26,  53,  81, 107,  15,  32,  68,  43,  79,  96,   4,  62,  90, 117,  17,   1, 101,  74,  46,  20, 112,  95,  59, 127,  27,  52,  80, 106,  14,  33,  69,  85,  49,  30, 122,  64,  36,  11, 111,  86,  50,  29, 121,  67,  39,   8, 108, 124,  24,  55,  83, 105,  13,  34,  70,   2, 102,  73,  45,  23, 115,  92,  56,  40,  76,  99,   7,  61,  89, 118,  18, 125,  25,  54,  82, 104,  12,  35,  71,  87,  51,  28, 120,  66,  38,   9, 109,  41,  77,  98,   6,  60,  88, 119,  19,   3, 103,  72,  44,  22, 114,  93,  57,
	0, 101,  73,  44,  17, 116,  88,  61,  34,  71, 107,  14,  51,  86, 122,  31,  68,  33,  13, 104,  85,  48,  28, 121, 102,   3,  47,  74, 119,  18,  62,  91,  11, 110,  66,  39,  26, 127,  83,  54,  41,  76,  96,   5,  56,  93, 113,  20,  79,  42,   6,  99,  94,  59,  23, 114, 109,   8,  36,  65, 124,  25,  53,  80,  22, 115,  95,  58,   7,  98,  78,  43,  52,  81, 125,  24,  37,  64, 108,   9,  82,  55,  27, 126,  67,  38,  10, 111, 112,  21,  57,  92,  97,   4,  40,  77,  29, 120,  84,  49,  12, 105,  69,  32,  63,  90, 118,  19,  46,  75, 103,   2,  89,  60,  16, 117,  72,  45,   1, 100, 123,  30,  50,  87, 106,  15,  35,  70,
	0, 102,  79,  41,  29, 123,  82,  52,  58,  92, 117,  19,  39,  65, 104,  14, 116,  18,  59,  93, 105,  15,  38,  64,  78,  40,   1, 103,  83,  53,  28, 122, 107,  13,  36,  66, 118,  16,  57,  95,  81,  55,  30, 120,  76,  42,   3, 101,  31, 121,  80,  54,   2, 100,  77,  43,  37,  67, 106,  12,  56,  94, 119,  17,  85,  51,  26, 124,  72,  46,   7,  97, 111,   9,  32,  70, 114,  20,  61,  91,  33,  71, 110,   8,  60,  90, 115,  21,  27, 125,  84,  50,   6,  96,  73,  47,  62,  88, 113,  23,  35,  69, 108,  10,   4,  98,  75,  45,  25, 127,  86,  48,  74,  44,   5,  99,  87,  49,  24, 126, 112,  22,  63,  89, 109,  11,  34,  68,
	0, 103,  77,  42,  25, 126,  84,  51,  50,  85, 127,  24,  43,  76, 102,   1, 100,   3,  41,  78, 125,  26,  48,  87,  86,  49,  27, 124,  79,  40,   2, 101,  75,  44,   6,  97,  82,  53,  31, 120, 121,  30,  52,  83,  96,   7,  45,  74,  47,  72,  98,   5,  54,  81, 123,  28,  29, 122,  80,  55,   4,  99,  73,  46,  21, 114,  88,  63,  12, 107,  65,  38,  39,  64, 106,  13,  62,  89, 115,  20, 113,  22,  60,  91, 104,  15,  37,  66,  67,  36,  14, 105,  90,  61,  23, 112,  94,  57,  19, 116,  71,  32,  10, 109, 108,  11,  33,  70, 117,  18,  56,  95,  58,  93, 119,  16,  35,  68, 110,   9,   8, 111,  69,  34,  17, 118,  92,  59,
	0, 104,  83,  59,  37,  77, 118,  30,  74,  34,  25, 113, 111,   7,  60,  84,  23, 127,  68,  44,  50,  90,  97,   9,  93,  53,  14, 102, 120,  16,  43,  67,  46,  70, 125,  21,  11,  99,  88,  48, 100,  12,  55,  95,  65,  41,  18, 122,  57,  81, 106,   2,  28, 116,  79,  39, 115,  27,  32,  72,  86,  62,   5, 109,  92,  52,  15, 103, 121,  17,  42,  66,  22, 126,  69,  45,  51,  91,  96,   8,  75,  35,  24, 112, 110,   6,  61,  85,   1, 105,  82,  58,  36,  76, 119,  31, 114,  26,  33,  73,  87,  63,   4, 108,  56,  80, 107,   3,  29, 117,  78,  38, 101,  13,  54,  94,  64,  40,  19, 123,  47,  71, 124,  20,  10,  98,  89,  49,
	0, 105,  81,  56,  33,  72, 112,  25,  66,  43,  19, 122,  99,  10,  50,  91,   7, 110,  86,  63,  38,  79, 119,  30,  69,  44,  20, 125, 100,  13,  53,  92,  14, 103,  95,  54,  47,  70, 126,  23,  76,  37,  29, 116, 109,   4,  60,  85,   9,  96,  88,  49,  40,  65, 121,  16,  75,  34,  26, 115, 106,   3,  59,  82,  28, 117,  77,  36,  61,  84, 108,   5,  94,  55,  15, 102, 127,  22,  46,  71,  27, 114,  74,  35,  58,  83, 107,   2,  89,  48,   8,  97, 120,  17,  41,  64,  18, 123,  67,  42,  51,  90,  98,  11,  80,  57,   1, 104, 113,  24,  32,  73,  21, 124,  68,  45,  52,  93, 101,  12,  87,  62,   6, 111, 118,  31,  39,  78,
	0, 106,  87,  61,  45,  71, 122,  16,  90,  48,  13, 103, 119,  29,  32,  74,  55,  93,  96,  10,  26, 112,  77,  39, 109,   7,  58,  80,  64,  42,  23, 125, 110,   4,  57,  83,  67,  41,  20, 126,  52,  94,  99,   9,  25, 115,  78,  36,  89,  51,  14, 100, 116,  30,  35,  73,   3, 105,  84,  62,  46,  68, 121,  19,  95,  53,   8,  98, 114,  24,  37,  79,   5, 111,  82,  56,  40,  66, 127,  21, 104,   2,  63,  85,  69,  47,  18, 120,  50,  88, 101,  15,  31, 117,  72,  34,  49,  91, 102,  12,  28, 118,  75,  33, 107,   1,  60,  86,  70,  44,  17, 123,   6, 108,  81,  59,  43,  65, 124,  22,  92,  54,  11,  97, 113,  27,  38,  76,
	0, 107,  85,  62,  41,  66, 124,  23,  82,  57,   7, 108, 123,  16,  46,  69,  39,  76, 114,  25,  14, 101,  91,  48, 117,  30,  32,  75,  92,  55,   9,  98,  78,  37,  27, 112, 103,  12,  50,  89,  28, 119,  73,  34,  53,  94,  96,  11, 105,   2,  60,  87,  64,  43,  21, 126,  59,  80, 110,   5,  18, 121,  71,  44,  31, 116,  74,  33,  54,  93,  99,   8,  77,  38,  24, 115, 100,  15,  49,  90,  56,  83, 109,   6,  17, 122,  68,  47, 106,   1,  63,  84,  67,  40,  22, 125,  81,  58,   4, 111, 120,  19,  45,  70,   3, 104,  86,  61,  42,  65, 127,  20, 118,  29,  35,  72,  95,  52,  10,  97,  36,  79, 113,  26,  13, 102,  88,  51,
	0, 108,  91,  55,  53,  89, 110,   2, 106,   6,  49,  93,  95,  51,   4, 104,  87,  59,  12,  96,  98,  14,  57,  85,  61,  81, 102,  10,   8, 100,  83,  63,  45,  65, 118,  26,  24, 116,  67,  47,  71,  43,  28, 112, 114,  30,  41,  69, 122,  22,  33,  77,  79,  35,  20, 120,  16, 124,  75,  39,  37,  73, 126,  18,  90,  54,   1, 109, 111,   3,  52,  88,  48,  92, 107,   7,   5, 105,  94,  50,  13,  97,  86,  58,  56,  84,  99,  15, 103,  11,  60,  80,  82,  62,   9, 101, 119,  27,  44,  64,  66,  46,  25, 117,  29, 113,  70,  42,  40,  68, 115,  31,  32,  76, 123,  23,  21, 121,  78,  34,  74,  38,  17, 125, 127,  19,  36,  72,
	0, 109,  89,  52,  49,  92, 104,   5,  98,  15,  59,  86,  83,  62,  10, 103,  71,  42,  30, 115, 118,  27,  47,  66,  37,  72, 124,  17,  20, 121,  77,  32,  13,  96,  84,  57,  60,  81, 101,   8, 111,   2,  54,  91,  94,  51,   7, 106,  74,  39,  19, 126, 123,  22,  34,  79,  40,  69, 113,  28,  25, 116,  64,  45,  26, 119,  67,  46,  43,  70, 114,  31, 120,  21,  33,  76,  73,  36,  16, 125,  93,  48,   4, 105, 108,   1,  53,  88,  63,  82, 102,  11,  14,  99,  87,  58,  23, 122,  78,  35,  38,  75, 127,  18, 117,  24,  44,  65,  68,  41,  29, 112,  80,  61,   9, 100,  97,  12,  56,  85,  50,  95, 107,   6,   3, 110,  90,  55,
	0, 110,  95,  49,  61,  83,  98,  12, 122,  20,  37,  75,  71,  41,  24, 118, 119,  25,  40,  70,  74,  36,  21, 123,  13,  99,  82,  60,  48,  94, 111,   1, 109,   3,  50,  92,  80,  62,  15,  97,  23, 121,  72,  38,  42,  68, 117,  27,  26, 116,  69,  43,  39,  73, 120,  22,  96,  14,  63,  81,  93,  51,   2, 108,  89,  55,   6, 104, 100,  10,  59,  85,  35,  77, 124,  18,  30, 112,  65,  47,  46,  64, 113,  31,  19, 125,  76,  34,  84,  58,  11, 101, 105,   7,  54,  88,  52,  90, 107,   5,   9, 103,  86,  56,  78,  32,  17, 127, 115,  29,  44,  66,  67,  45,  28, 114, 126,  16,  33,  79,  57,  87, 102,   8,   4, 106,  91,  53,
	0, 111,  93,  50,  57,  86, 100,  11, 114,  29,  47,  64,  75,  36,  22, 121, 103,   8,  58,  85,  94,  49,   3, 108,  21, 122,  72,  39,  44,  67, 113,  30,  77,  34,  16, 127, 116,  27,  41,  70,  63,  80,  98,  13,   6, 105,  91,  52,  42,  69, 119,  24,  19, 124,  78,  33,  88,  55,   5, 106,  97,  14,  60,  83,  25, 118,  68,  43,  32,  79, 125,  18, 107,   4,  54,  89,  82,  61,  15,  96, 126,  17,  35,  76,  71,  40,  26, 117,  12,  99,  81,  62,  53,  90, 104,   7,  84,  59,   9, 102, 109,   2,  48,  95,  38,  73, 123,  20,  31, 112,  66,  45,  51,  92, 110,   1,  10, 101,  87,  56,  65,  46,  28, 115, 120,  23,  37,  74,
	0, 112,  99,  19,  69,  53,  38,  86,   9, 121, 106,  26,  76,  60,  47,  95,  18,  98, 113,   1,  87,  39,  52,  68,  27, 107, 120,   8,  94,  46,  61,  77,  36,  84,  71,  55,  97,  17,   2, 114,  45,  93,  78,  62, 104,  24,  11, 123,  54,  70,  85,  37, 115,   3,  16,  96,  63,  79,  92,  44, 122,  10,  25, 105,  72,  56,  43,  91,  13, 125, 110,  30,  65,  49,  34,  82,   4, 116, 103,  23,  90,  42,  57,  73,  31, 111, 124,  12,  83,  35,  48,  64,  22, 102, 117,   5, 108,  28,  15, 127,  41,  89,  74,  58, 101,  21,   6, 118,  32,  80,  67,  51, 126,  14,  29, 109,  59,  75,  88,  40, 119,   7,  20, 100,  50,  66,  81,  33,
	0, 113,  97,  16,  65,  48,  32,  81,   1, 112,  96,  17,  64,  49,  33,  80,   2, 115,  99,  18,  67,  50,  34,  83,   3, 114,  98,  19,  66,  51,  35,  82,   4, 117, 101,  20,  69,  52,  36,  85,   5, 116, 100,  21,  68,  53,  37,  84,   6, 119, 103,  22,  71,  54,  38,  87,   7, 118, 102,  23,  70,  55,  39,  86,   8, 121, 105,  24,  73,  56,  40,  89,   9, 120, 104,  25,  72,  57,  41,  88,  10, 123, 107,  26,  75,  58,  42,  91,  11, 122, 106,  27,  74,  59,  43,  90,  12, 125, 109,  28,  77,  60,  44,  93,  13, 124, 108,  29,  76,  61,  45,  92,  14, 127, 111,  30,  79,  62,  46,  95,  15, 126, 110,  31,  78,  63,  47,  94,
	0, 114, 103,  21,  77,  63,  42,  88,  25, 107, 126,  12,  84,  38,  51,  65,  50,  64,  85,  39, 127,  13,  24, 106,  43,  89,  76,  62, 102,  20,   1, 115, 100,  22,   3, 113,  41,  91,  78,  60, 125,  15,  26, 104,  48,  66,  87,  37,  86,  36,  49,  67,  27, 105, 124,  14,  79,  61,  40,  90,   2, 112, 101,  23,  75,  57,  44,  94,   6, 116,  97,  19,  82,  32,  53,  71,  31, 109, 120,  10, 121,  11,  30, 108,  52,  70,  83,  33,  96,  18,   7, 117,  45,  95,  74,  56,  47,  93,  72,  58,  98,  16,   5, 119,  54,  68,  81,  35, 123,   9,  28, 110,  29, 111, 122,   8,  80,  34,  55,  69,   4, 118,  99,  17,  73,  59,  46,  92,
	0, 115, 101,  22,  73,  58,  44,  95,  17,  98, 116,   7,  88,  43,  61,  78,  34,  81,  71,  52, 107,  24,  14, 125,  51,  64,  86,  37, 122,   9,  31, 108,  68,  55,  33,  82,  13, 126, 104,  27,  85,  38,  48,  67,  28, 111, 121,  10, 102,  21,   3, 112,  47,  92,  74,  57, 119,   4,  18,  97,  62,  77,  91,  40,  11, 120, 110,  29,  66,  49,  39,  84,  26, 105, 127,  12,  83,  32,  54,  69,  41,  90,  76,  63,  96,  19,   5, 118,  56,  75,  93,  46, 113,   2,  20, 103,  79,  60,  42,  89,   6, 117,  99,  16,  94,  45,  59,  72,  23, 100, 114,   1, 109,  30,   8, 123,  36,  87,  65,  50, 124,  15,  25, 106,  53,  70,  80,  35,
	0, 116, 107,  31,  85,  33,  62,  74,  41,  93,  66,  54, 124,   8,  23,  99,  82,  38,  57,  77,   7, 115, 108,  24, 123,  15,  16, 100,  46,  90,  69,  49,  39,  83,  76,  56, 114,   6,  25, 109,  14, 122, 101,  17,  91,  47,  48,  68, 117,   1,  30, 106,  32,  84,  75,  63,  92,  40,  55,  67,   9, 125,  98,  22,  78,  58,  37,  81,  27, 111, 112,   4, 103,  19,  12, 120,  50,  70,  89,  45,  28, 104, 119,   3,  73,  61,  34,  86,  53,  65,  94,  42,  96,  20,  11, 127, 105,  29,   2, 118,  60,  72,  87,  35,  64,  52,  43,  95,  21,  97, 126,  10,  59,  79,  80,  36, 110,  26,   5, 113,  18, 102, 121,  13,  71,  51,  44,  88,
	0, 117, 105,  28,  81,  36,  56,  77,  33,  84,  72,  61, 112,   5,  25, 108,  66,  55,  43,  94,  19, 102, 122,  15,  99,  22,  10, 127,  50,  71,  91,  46,   7, 114, 110,  27,  86,  35,  63,  74,  38,  83,  79,  58, 119,   2,  30, 107,  69,  48,  44,  89,  20,  97, 125,   8, 100,  17,  13, 120,  53,  64,  92,  41,  14, 123, 103,  18,  95,  42,  54,  67,  47,  90,  70,  51, 126,  11,  23,  98,  76,  57,  37,  80,  29, 104, 116,   1, 109,  24,   4, 113,  60,  73,  85,  32,   9, 124,  96,  21,  88,  45,  49,  68,  40,  93,  65,  52, 121,  12,  16, 101,  75,  62,  34,  87,  26, 111, 115,   6, 106,  31,   3, 118,  59,  78,  82,  39,
	0, 118, 111,  25,  93,  43,  50,  68,  57,  79,  86,  32, 100,  18,  11, 125, 114,   4,  29, 107,  47,  89,  64,  54,  75,  61,  36,  82,  22,  96, 121,  15, 103,  17,   8, 126,  58,  76,  85,  35,  94,  40,  49,  71,   3, 117, 108,  26,  21,  99, 122,  12,  72,  62,  39,  81,  44,  90,  67,  53, 113,   7,  30, 104,  77,  59,  34,  84,  16, 102, 127,   9, 116,   2,  27, 109,  41,  95,  70,  48,  63,  73,  80,  38,  98,  20,  13, 123,   6, 112, 105,  31,  91,  45,  52,  66,  42,  92,  69,  51, 119,   1,  24, 110,  19, 101, 124,  10,  78,  56,  33,  87,  88,  46,  55,  65,   5, 115, 106,  28,  97,  23,  14, 120,  60,  74,  83,  37,
	0, 119, 109,  26,  89,  46,  52,  67,  49,  70,  92,  43, 104,  31,   5, 114,  98,  21,  15, 120,  59,  76,  86,  33,  83,  36,  62,  73,  10, 125, 103,  16,  71,  48,  42,  93,  30, 105, 115,   4, 118,   1,  27, 108,  47,  88,  66,  53,  37,  82,  72,  63, 124,  11,  17, 102,  20,  99, 121,  14,  77,  58,  32,  87,  13, 122,  96,  23,  84,  35,  57,  78,  60,  75,  81,  38, 101,  18,   8, 127, 111,  24,   2, 117,  54,  65,  91,  44,  94,  41,  51,  68,   7, 112, 106,  29,  74,  61,  39,  80,  19, 100, 126,   9, 123,  12,  22,  97,  34,  85,  79,  56,  40,  95,  69,  50, 113,   6,  28, 107,  25, 110, 116,   3,  64,  55,  45,  90,
	0, 120, 115,  11, 101,  29,  22, 110,  73,  49,  58,  66,  44,  84,  95,  39,  17, 105,  98,  26, 116,  12,   7, 127,  88,  32,  43,  83,  61,  69,  78,  54,  34,  90,  81,  41,  71,  63,  52,  76, 107,  19,  24,  96,  14, 118, 125,   5,  51,  75,  64,  56,  86,  46,  37,  93, 122,   2,   9, 113,  31, 103, 108,  20,  68,  60,  55,  79,  33,  89,  82,  42,  13, 117, 126,   6, 104,  16,  27,  99,  85,  45,  38,  94,  48,  72,  67,  59,  28, 100, 111,  23, 121,   1,  10, 114, 102,  30,  21, 109,   3, 123, 112,   8,  47,  87,  92,  36,  74,  50,  57,  65, 119,  15,   4, 124,  18, 106,  97,  25,  62,  70,  77,  53,  91,  35,  40,  80,
	0, 121, 113,   8,  97,  24,  16, 105,  65,  56,  48,  73,  32,  89,  81,  40,   1, 120, 112,   9,  96,  25,  17, 104,  64,  57,  49,  72,  33,  88,  80,  41,   2, 123, 115,  10,  99,  26,  18, 107,  67,  58,  50,  75,  34,  91,  83,  42,   3, 122, 114,  11,  98,  27,  19, 106,  66,  59,  51,  74,  35,  90,  82,  43,   4, 125, 117,  12, 101,  28,  20, 109,  69,  60,  52,  77,  36,  93,  85,  44,   5, 124, 116,  13, 100,  29,  21, 108,  68,  61,  53,  76,  37,  92,  84,  45,   6, 127, 119,  14, 103,  30,  22, 111,  71,  62,  54,  79,  38,  95,  87,  46,   7, 126, 118,  15, 102,  31,  23, 110,  70,  63,  55,  78,  39,  94,  86,  47,
	0, 122, 119,  13, 109,  23,  26,  96,  89,  35,  46,  84,  52,  78,  67,  57,  49,  75,  70,  60,  92,  38,  43,  81, 104,  18,  31, 101,   5, 127, 114,   8,  98,  24,  21, 111,  15, 117, 120,   2,  59,  65,  76,  54,  86,  44,  33,  91,  83,  41,  36,  94,  62,  68,  73,  51,  10, 112, 125,   7, 103,  29,  16, 106,  71,  61,  48,  74,  42,  80,  93,  39,  30, 100, 105,  19, 115,   9,   4, 126, 118,  12,   1, 123,  27,  97, 108,  22,  47,  85,  88,  34,  66,  56,  53,  79,  37,  95,  82,  40,  72,  50,  63,  69, 124,   6,  11, 113,  17, 107, 102,  28,  20, 110,  99,  25, 121,   3,  14, 116,  77,  55,  58,  64,  32,  90,  87,  45,
	0, 123, 117,  14, 105,  18,  28, 103,  81,  42,  36,  95,  56,  67,  77,  54,  33,  90,  84,  47,  72,  51,  61,  70, 112,  11,   5, 126,  25,  98, 108,  23,  66,  57,  55,  76,  43,  80,  94,  37,  19, 104, 102,  29, 122,   1,  15, 116,  99,  24,  22, 109,  10, 113, 127,   4,  50,  73,  71,  60,  91,  32,  46,  85,   7, 124, 114,   9, 110,  21,  27,  96,  86,  45,  35,  88,  63,  68,  74,  49,  38,  93,  83,  40,  79,  52,  58,  65, 119,  12,   2, 121,  30, 101, 107,  16,  69,  62,  48,  75,  44,  87,  89,  34,  20, 111,  97,  26, 125,   6,   8, 115, 100,  31,  17, 106,  13, 118, 120,   3,  53,  78,  64,  59,  92,  39,  41,  82,
	0, 124, 123,   7, 117,   9,  14, 114, 105,  21,  18, 110,  28,  96, 103,  27,  81,  45,  42,  86,  36,  88,  95,  35,  56,  68,  67,  63,  77,  49,  54,  74,  33,  93,  90,  38,  84,  40,  47,  83,  72,  52,  51,  79,  61,  65,  70,  58, 112,  12,  11, 119,   5, 121, 126,   2,  25, 101,  98,  30, 108,  16,  23, 107,  66,  62,  57,  69,  55,  75,  76,  48,  43,  87,  80,  44,  94,  34,  37,  89,  19, 111, 104,  20, 102,  26,  29,  97, 122,   6,   1, 125,  15, 115, 116,   8,  99,  31,  24, 100,  22, 106, 109,  17,  10, 118, 113,  13, 127,   3,   4, 120,  50,  78,  73,  53,  71,  59,  60,  64,  91,  39,  32,  92,  46,  82,  85,  41,
	0, 125, 121,   4, 113,  12,   8, 117,  97,  28,  24, 101,  16, 109, 105,  20,  65,  60,  56,  69,  48,  77,  73,  52,  32,  93,  89,  36,  81,  44,  40,  85,   1, 124, 120,   5, 112,  13,   9, 116,  96,  29,  25, 100,  17, 108, 104,  21,  64,  61,  57,  68,  49,  76,  72,  53,  33,  92,  88,  37,  80,  45,  41,  84,   2, 127, 123,   6, 115,  14,  10, 119,  99,  30,  26, 103,  18, 111, 107,  22,  67,  62,  58,  71,  50,  79,  75,  54,  34,  95,  91,  38,  83,  46,  42,  87,   3, 126, 122,   7, 114,  15,  11, 118,  98,  31,  27, 102,  19, 110, 106,  23,  66,  63,  59,  70,  51,  78,  74,  55,  35,  94,  90,  39,  82,  47,  43,  86,
	0, 126, 127,   1, 125,   3,   2, 124, 121,   7,   6, 120,   4, 122, 123,   5, 113,  15,  14, 112,  12, 114, 115,  13,   8, 118, 119,   9, 117,  11,  10, 116,  97,  31,  30,  96,  28,  98,  99,  29,  24, 102, 103,  25, 101,  27,  26, 100,  16, 110, 111,  17, 109,  19,  18, 108, 105,  23,  22, 104,  20, 106, 107,  21,  65,  63,  62,  64,  60,  66,  67,  61,  56,  70,  71,  57,  69,  59,  58,  68,  48,  78,  79,  49,  77,  51,  50,  76,  73,  55,  54,  72,  52,  74,  75,  53,  32,  94,  95,  33,  93,  35,  34,  92,  89,  39,  38,  88,  36,  90,  91,  37,  81,  47,  46,  80,  44,  82,  83,  45,  40,  86,  87,  41,  85,  43,  42,  84,
	0, 127, 125,   2, 121,   6,   4, 123, 113,  14,  12, 115,   8, 119, 117,  10,  97,  30,  28,  99,  24, 103, 101,  26,  16, 111, 109,  18, 105,  22,  20, 107,  65,  62,  60,  67,  56,  71,  69,  58,  48,  79,  77,  50,  73,  54,  52,  75,  32,  95,  93,  34,  89,  38,  36,  91,  81,  46,  44,  83,  40,  87,  85,  42,   1, 126, 124,   3, 120,   7,   5, 122, 112,  15,  13, 114,   9, 118, 116,  11,  96,  31,  29,  98,  25, 102, 100,  27,  17, 110, 108,  19, 104,  23,  21, 106,  64,  63,  61,  66,  57,  70,  68,  59,  49,  78,  76,  51,  72,  55,  53,  74,  33,  94,  92,  35,  88,  39,  37,  90,  80,  47,  45,  82,  41,  86,  84,  43,

};
